2013-02-18 2 views
7

Я тестирую this page, и я не уверен, что мне не хватает.Доступ к объекту документа кадра с 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 

Кажется, что это должно сработать, так что в чем проблема? Он должен работать в IE8, но я также тестирую Chrome (новейшая стабильная версия).

+3

Действительно ли вы используете фреймы в 2013 году, или это iFrames? – adeneo

+1

Как насчет 'document.getElementsByTagName (" frame ") [0] .contentDocument'? –

+0

'var frame = document.getElementsByTagName (" frame ") [0]; var frame_doc = frame.contentWindow.document || frame.contentDocument; '- затем использовать' frame_doc' в качестве документа фрейма – Ian

ответ

22

многоборье способ получения содержимого фрейма является чем-то вроде этого:

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

Тем не менее, можно получить документ А <frame> «S, используя его имя , как:

window.frames["frame_name"].document 

если HTML были:

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

Вы можете использовать

parent.frame.location.href = ... 

Где рамка имя/идентификатор кадра вы хотели изменить.

Greets Марк

Смежные вопросы