2013-02-18 16 views
7

ile erişiyorum this page üzerinde test ediyorum ve eksik olduğumdan emin değilim.Bir çerçevenin belge nesnesine JavaScript

// 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 

Bu işe yarayacak gibi görünüyor, bu yüzden sorun nedir? IE8'de çalışması gerekiyor, ancak Chrome'da da test ediyorum (en yeni kararlı). Çerçeve değiştirmek istiyorum çerçevenin adı/id olduğunda

+3

2013'te çerçeve kullanıyor musunuz, yoksa iFrame'ler mi? – adeneo

+1

'document.getElementsByTagName ("frame") [0] .contentDocument' nedir? –

+0

'var frame = document.getElementsByTagName (" frame ") [0]; var frame_doc = frame.contentWindow.document || frame.contentDocument; '- sonra frame_doc 'çerçevesinin – Ian

cevap

22

Greets: Ancak

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

, onun adını kullanarak bir <frame> 'ın belgeyi almak mümkündür gibi:

window.frames["frame_name"].document 

HTML olsaydı:

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

Sen

parent.frame.location.href = ... 

kullanabilirsiniz.

Marc

bir çerçevenin içeriğini almak için çepeçevre yolu böyle bir şey ile
İlgili konular