无法弄清楚为什么window.frames.length = 0

时间:2014-03-14 19:29:54

标签: javascript html dom

在有人问我为什么使用框架之前:在我的工作中,我需要测试一个使用框架的网站。我正在尝试使用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中访问框架?我不认为这是问题来自其中一个框架指向本地文件的事实?

1 个答案:

答案 0 :(得分:4)

window对象不是指整个浏览器窗口,而是document对象所在的逻辑窗口。框架集和每个框架都有自己的windowdocument个对象。

代码所在的窗口没有任何框架,您需要查看父窗口,其中框架集是:

alert(window.parent.frames.length);