在有人问我为什么使用框架之前:在我的工作中,我需要测试一个使用框架的网站。我正在尝试使用Javascript从一个框架中获取一些信息,而我无法让框架工作,期间。
首先,为了试验,我在我的机器上创建了一个文件test.html
。它加载两个框架:左边框架包含我写的另一个测试页面(test2.html
),右框架包含一些网页。
<html>
<FRAMESET cols="20%, 80%">
<FRAME name="leftFrame" src="test2.html">
<FRAME name="rightFrame" src="http://www.foxnews.com/">
</FRAMESET>
</html>
这是我的其他测试页test2.html
。它只有一个按钮,当点击时,会提醒您window.frames
的长度。从我在网上找到的,这应该告诉我有帧的数量。问题是,结果是零。
<html>
<head>
<script type="text/javascript">
function doSomething() {
alert(window.frames.length);
}
</script>
</head>
<body>
<button type="button" onclick="doSomething();">
Click me
</button>
</body>
</html>
如何在JavaScript中访问框架?我不认为这是问题来自其中一个框架指向本地文件的事实?
答案 0 :(得分:4)
window
对象不是指整个浏览器窗口,而是document
对象所在的逻辑窗口。框架集和每个框架都有自己的window
和document
个对象。
代码所在的窗口没有任何框架,您需要查看父窗口,其中框架集是:
alert(window.parent.frames.length);