2013-02-18 16 views
7

Testuję na this page i nie jestem pewien, czego mi brakuje.Uzyskiwanie dostępu do obiektu dokumentu ramki przy użyciu 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 

Wygląda na to, że to powinno zadziałać, więc w czym problem? Musi działać w IE8, ale testuję także w Chrome (najnowsza stabilna).

+3

Czy faktycznie używasz ramek w 2013 r., Czy te są iFrame? – adeneo

+1

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

+0

'var frame = document.getElementsByTagName (" frame ") [0]; var frame_doc = frame.contentWindow.document || frame.contentDocument; '- następnie użyj' frame_doc' jako dokumentu ramki – Ian

Odpowiedz

22

all-around sposobem na uzyskanie zawartości ramie jest coś takiego:

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

Jednak jest to możliwe, aby uzyskać <frame> „s dokument przy użyciu jego nazwy jak:

window.frames["frame_name"].document 

jeżeli HTML byli:

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

Można użyć

parent.frame.location.href = ... 

Jeżeli rama jest nazwa/id ramy d chcesz zmienić.

Greets Marca

Powiązane problemy