2013-02-18 44 views
7

के साथ फ्रेम के दस्तावेज़ ऑब्जेक्ट को एक्सेस करना मैं this page पर परीक्षण कर रहा हूं, और मुझे यकीन नहीं है कि मैं क्या खो रहा हूं।जावास्क्रिप्ट

// Two frames on the page 
> document.getElementsByTagName("frame").length 
2 

// Same domain, so no security restrictions 
> document.getElementsByTagName("frame")[0].src 
"http://www.quackit.com/html/templates/frames/menu_1.html" 
> window.location.href 
"http://www.quackit.com/html/templates/frames/frames_example_1.html" 

// Can't access the document 
> document.getElementsByTagName("frame")[0].document 
undefined 

ऐसा लगता है कि यह काम करना चाहिए, तो समस्या क्या है? इसे आईई 8 में काम करने की ज़रूरत है, लेकिन मैं क्रोम (नवीनतम स्थिर) में भी परीक्षण कर रहा हूं।

+3

क्या आप वास्तव में 2013 में फ्रेम का उपयोग कर रहे हैं, या वे आईफ्रेम हैं? – adeneo

+1

'document.getElementsByTagName (" फ्रेम ") [0] .contentDocument' के बारे में क्या? –

+0

'var frame = document.getElementsByTagName (" frame ") [0]; var frame_doc = frame.contentWindow.document || frame.contentDocument; '- फिर फ्रेम के दस्तावेज़ – Ian

उत्तर

22

एक फ्रेम की सामग्री को प्राप्त करने के लिए सभी चारों ओर जिस तरह से कुछ इस तरह से है:

var theFrame = document.getElementsByTagName("frame")[0]; 
var theFrameDocument = theFrame.contentDocument || theFrame.contentWindow.document; 
var button = theFrameDocument.getElementById("mybutton"); 

हालांकि, वह अपने नाम का उपयोग करके एक <frame> के दस्तावेज़ प्राप्त करने के लिए संभव है , जैसे:

window.frames["frame_name"].document 

यदि एचटीएमएल थे:

<frame name="frame_name">...</frame> 
0

आप

parent.frame.location.href = ... 

इस्तेमाल कर सकते हैं जहां फ्रेम फ्रेम आप बदलना चाहते हैं के नाम/आईडी है।

स्वागत करती है मार्क

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^