当使用window.frames [name]访问时,iframe contentWindow未定义

时间:2014-05-17 12:38:36

标签: javascript html iframe

如果使用以下方式获取contentWindow,则值为undefined

<html>
<head>
    <title>iframe test</title>
</head>
<body>
    <iframe id="frame1" src="frame1.html" name="frame1"></iframe>
<script>
    document.body.onload = function() {
        console.info("index loaded");
        var frame1 = window.frames["frame1"];
        console.info(frame1.contentWindow);
    }
</script>
</body>
</html>

如果使用其他方式,如下所示,它可以正常工作:

var frame1 = document.getElementById("frame1");
console.info(frame1.contentWindow);

我在FF 29.0.1,chrome 34,IE11上进行了测试,它们的工作方式相同。

所以我有两个问题:

  1. 为什么第一种方式无法获得contentWindow值
  2. iframe.contentWindow在所有浏览器中都兼容吗?

1 个答案:

答案 0 :(得分:14)

window.frames["frame1"];

contentWindow,它是一个命名窗口,在你的情况下,它与

相同
document.getElementById("frame1").contentWindow

FIDDLE