<iframe id="id_description_iframe" class="rte-zone" height="200" frameborder="0" title="description">
<html>
<head></head>
<body class="frameBody">
test<br/>
</body>
</html>
</iframe>
जो मैं पाना चाहता हूं वह है:
test<br/>
<iframe id="id_description_iframe" class="rte-zone" height="200" frameborder="0" title="description">
<html>
<head></head>
<body class="frameBody">
test<br/>
</body>
</html>
</iframe>
जो मैं पाना चाहता हूं वह है:
test<br/>
जवाबों:
सटीक सवाल यह है कि इसे शुद्ध जावास्क्रिप्ट के साथ कैसे किया जाए jQuery के साथ नहीं।
लेकिन मैं हमेशा उस समाधान का उपयोग करता हूं जो jQuery के स्रोत कोड में पाया जा सकता है। यह देशी जावास्क्रिप्ट की सिर्फ एक पंक्ति है।
मेरे लिए यह सबसे अच्छा, आसान पठनीय और यहां तक कि है afaik सबसे छोटा रास्ता iframes सामग्री प्राप्त करने के।
पहले अपना iframe प्राप्त करें
var iframe = document.getElementById('id_description_iframe');
// or
var iframe = document.querySelector('#id_description_iframe');
और फिर jQuery के समाधान का उपयोग करें
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
यह इंटरनेट एक्सप्लोरर में भी काम करता है जो ऑब्जेक्ट की
contentWindow
संपत्ति के दौरान यह ट्रिक करता हैiframe
। अधिकांश अन्य ब्राउज़रcontentDocument
संपत्ति का उपयोग करते हैं और यही कारण है कि हम इस संपत्ति को पहले या इस स्थिति में प्रमाण देते हैं। यदि यह सेट करने की कोशिश नहीं हैcontentWindow.document
।
Iframe में तत्वों का चयन करें
तब आप आमतौर पर DOM-Element का चयन getElementById()
करने के querySelectorAll()
लिए उपयोग कर सकते हैं या यहां तक कि iframeDocument
:
if (!iframeDocument) {
throw "iframe couldn't be found in DOM.";
}
var iframeContent = iframeDocument.getElementById('frameBody');
// or
var iframeContent = iframeDocument.querySelectorAll('#frameBody');
आईफ्रेम में कॉल फ़ंक्शन
कुछ वैश्विक कार्यों, चर या संपूर्ण पुस्तकालयों (जैसे ) को कॉल करने के लिए बस window
तत्व प्राप्त iframe
करें jQuery
:
var iframeWindow = iframe.contentWindow;
// you can even call jQuery or other frameworks
// if it is loaded inside the iframe
iframeContent = iframeWindow.jQuery('#frameBody');
// or
iframeContent = iframeWindow.$('#frameBody');
// or even use any other global variable
iframeWindow.myVar = window.myVar;
// or call a global function
var myVar = iframeWindow.myFunction(param1 /*, ... */);
ध्यान दें
यह सब संभव है यदि आप एक ही मूल नीति का पालन करते हैं ।
document.querySelector('#id_description_iframe').onload = function() {...
आशा में संलग्न करना पड़ा कि यह किसी की मदद करता है।
JQuery का उपयोग करना, यह प्रयास करें:
$("#id_description_iframe").contents().find("body").html()
यह मेरे लिए पूरी तरह से काम करता है:
document.getElementById('iframe_id').contentWindow.document.body.innerHTML;
.body
काम नहीं करता है। हालाँकि .getElementsByTagName('body')[0]
करता है।
AFAIK, एक iframe उस तरह से इस्तेमाल नहीं किया जा सकता है। आपको इसके src विशेषता को किसी अन्य पृष्ठ पर इंगित करने की आवश्यकता है।
यहाँ विमान पुरानी जावास्क्रिप्ट का उपयोग करके अपने शरीर की सामग्री प्राप्त करने का तरीका बताया गया है। यह IE और फ़ायरफ़ॉक्स दोनों के साथ काम करता है।
function getFrameContents(){
var iFrame = document.getElementById('id_description_iframe');
var iFrameBody;
if ( iFrame.contentDocument )
{ // FF
iFrameBody = iFrame.contentDocument.getElementsByTagName('body')[0];
}
else if ( iFrame.contentWindow )
{ // IE
iFrameBody = iFrame.contentWindow.document.getElementsByTagName('body')[0];
}
alert(iFrameBody.innerHTML);
}
content
JS के साथ iframe में उपयोग करें :
document.getElementById('id_iframe').contentWindow.document.write('content');
मुझे लगता है कि टैग को इनबेट करते हुए टेक्स्ट को उन ब्राउज़रों के लिए आरक्षित किया जाता है जो कैंट हैंडल इफ्रेम्स यानी ।।
<iframe src ="html_intro.asp" width="100%" height="300">
<p>Your browser does not support iframes.</p>
</iframe>
आप iframes html के स्रोत को सेट करने के लिए 'src' विशेषता का उपयोग करते हैं ...
आशा है कि मदद करता है :)
निम्नलिखित कोड क्रॉस-ब्राउज़र अनुपालन है। यह IE7, IE8, Fx 3, Safari और Chrome में काम करता है, इसलिए क्रॉस-ब्राउज़र समस्याओं को संभालने की कोई आवश्यकता नहीं है। IE6 में परीक्षण नहीं किया।
<iframe id="iframeId" name="iframeId">...</iframe>
<script type="text/javascript">
var iframeDoc;
if (window.frames && window.frames.iframeId &&
(iframeDoc = window.frames.iframeId.document)) {
var iframeBody = iframeDoc.body;
var ifromContent = iframeBody.innerHTML;
}
</script>
window.frames.iframeId.document
मेरे लिए अपरिभाषित है। (Ubuntu 13.04, क्रोम)
Chalkey सही है, आपको पेज को iframe में निर्दिष्ट करने के लिए src विशेषता का उपयोग करने की आवश्यकता है। आपको यह प्रदान करना, और iframe में दस्तावेज़ मूल डोमेन के समान डोमेन में है, आप इसका उपयोग कर सकते हैं:
var e = document.getElementById("id_description_iframe");
if(e != null) {
alert(e.contentWindow.document.body.innerHTML);
}
जाहिर है आप तब सामग्री के साथ कुछ उपयोगी कर सकते हैं बजाय उन्हें एक चेतावनी में डालने के।
जावास्क्रिप्ट से शरीर की सामग्री प्राप्त करने के लिए, मैंने निम्नलिखित कोड की कोशिश की है:
var frameObj = document.getElementById('id_description_iframe');
var frameContent = frameObj.contentWindow.document.body.innerHTML;
जहाँ "id_description_iframe" आपकी आइफ्रेम आईडी है। यह कोड मेरे लिए ठीक काम कर रहा है।