18

我正在这个页面上进行测试,但我不确定我错过了什么。

// 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 中进行测试(最新稳定版)。

4

2 回答 2

37

获取框架内容的全方位方法是这样的:

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

但是,可以<frame>通过使用其名称来获取 的文档,例如:

window.frames["frame_name"].document

如果 HTML 是:

<frame name="frame_name">...</frame>
于 2013-02-18T20:37:40.730 回答
1

你可以使用

parent.frame.location.href = ...

其中 frame 是您要更改的框架的名称/ID。

问候马克

于 2013-02-18T20:32:13.367 回答