访问IFrame

时间:2012-07-03 18:54:13

标签: javascript dom iframe cors

当我尝试访问iframe时,出现此错误,我不确定我做错了什么。有人可以帮我解决这个问题吗?

var ifrm = document.getElementById('iframe'),
ifrm = (ifrm.contentWindow) ? ifrm.contentWindow :
                              (ifrm.contentDocument.document)
                            ? ifrm.contentDocument.document :
                              ifrm.contentDocument;

ifrm.open();
ifrm.write("Hello World!");
ifrm.close();

这些是我收到的错误:

未捕获的TypeError:无法读取属性'文档'未定义的

未捕获的TypeError:无法读取属性' readyState'未定义的

2 个答案:

答案 0 :(得分:3)

您正在寻找DOM元素:

<iframe>

iframe是HTML标记的名称,而不是此元素的id值(将定义为id =“value”),因此您要使用:

document.getElementsByTagName('iframe')[0]

如果页面上有多个iframe,则将0更改为所需的索引,因为getElementsByTagName()将返回结果数组,即使页面上只有一个iframe。

此外,您可以按如下方式简化三元操作:

ifrm = ifrm.contentWindow ? ifrm.contentWindow.document : ifrm.contentDocument;

通过这种方式,您可以在所有浏览器中获取iframe的文档对象,从而可以访问open(),write()和close()方法以及readyState属性。

答案 1 :(得分:2)

在标记之后放置javascript源代码。

像这样

<html>
<head>
</head>
<body>
<iframe>
<script>
blah blah
</script>
</body>
</html>