2011-07-05 10 views
12

के लिए सामग्री दस्तावेज़ "ContentDocument" वास्तव में iframe (या यहां तक ​​कि पुराना "फ्रेम" तत्व) के लिए प्रतिनिधित्व करता है? क्या यह "एचटीएमएल" तत्व या "शरीर" तत्व के बराबर है? इसका उपयोग क्या है? और क्या यह संपत्ति सभी ब्राउज़रों में समर्थित है?सामग्री iframe

उत्तर

19

w3.org

प्रकार दस्तावेज़, केवल पढ़ने के लिए, डोम स्तर 2 में दस्तावेज़ इस फ्रेम, शामिल हैं अगर कोई है और यह उपलब्ध है, या अशक्त अन्यथा शुरू की के contentDocument।

MDN

डोम iframe तत्व से, लिपियों contentWindow संपत्ति के माध्यम से शामिल HTML पृष्ठ के खिड़की वस्तु का उपयोग कर सकते हैं। ContentDocument प्रॉपर्टी आईफ्रेम के अंदर दस्तावेज़ तत्व को संदर्भित करती है (यह contentWindow.document के बराबर है), लेकिन IE8 से पहले इंटरनेट एक्सप्लोरर संस्करणों द्वारा समर्थित नहीं है।

msdn

दस्तावेज़ यह पेज या फ्रेम
शामिल यह गुण Windows Internet Explorer में नया है 8

तो शरीर तत्व आप

इस्तेमाल कर सकते हैं के innerHTML प्राप्त करने के लिए

iframe.contentDocument.getElementsByTagName("body")[0]

या

iframe.contentDocument.body

आज ब्राउज़रों में।

+1

सामग्रीविंडो के समर्थन के बारे में क्या? यह कब शुरू हुआ और यह मानक है? – Olga

+0

हां। डोम lvl2। पहला लिंक – mplungjan

+0

धन्यवाद लेकिन w3.org पृष्ठ में सामग्री के लिए मिलान नहीं हैं विन्डो, केवल सामग्री दस्तावेज़ के लिए। मैं सोच रहा था कि मानक कैसे है cindentWindow – Olga

2

contentDocument एक आईफ्रेम (DOM ऑब्जेक्ट) के दस्तावेज़ का प्रतिनिधित्व करता है।

myFrame.contentDocument.body 

आप शरीर में ही मिल जाएगा: यह नहीं html के बराबर के बाद से दस्तावेजों को अपने स्वयं के गुण होते हैं, लेकिन यदि आप टाइप है।

यह एक छोटे संशोधन के साथ सभी ब्राउज़रों में समर्थित है,: के लिए Internet Explorer

myFrame.contentWindow.document 

का उपयोग का आनंद लें, Nili

11

contentDocument iframe या फ्रेम के Document वस्तु की पकड़ पाने के लिए मानकीकृत तरीका है । यह वही ऑब्जेक्ट है क्योंकि आईफ़्रेम के भीतर चल रहे जावास्क्रिप्ट document के माध्यम से पहुंच जाएगा।

जैसा कि अन्य उत्तरों में उल्लेख किया गया है, आईई ने संस्करण 8 तक इसका समर्थन नहीं किया है, लेकिन contentWindow के माध्यम से आईफ्रेम की Window ऑब्जेक्ट तक पहुंच का समर्थन किया है।एक iframe के <body> तत्व की पकड़ होने का एक पार ब्राउज़र रास्ता इसलिए है:

var iframeDoc = iframe.contentDocument || iframe.contentWindow.document; 
var iframeBody = iframeDoc.body; 
ध्यान दें कि यदि आइफ्रेम मुख्य दस्तावेज़ के रूप में एक ही डोमेन से नहीं परोसा जाता है, ब्राउज़र सुरक्षा प्रतिबंधों अपने दस्तावेज़ वस्तु का उपयोग कर पाएगा

इस या किसी अन्य तरीके से।