2012-07-03 66 views
0

当我尝试访问的iframe,我得到这个错误,我不知道我做错了。有人可以帮我解决这个问题吗?访问的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(); 

这是我收到的错误:

遗漏的类型错误:未定义

遗漏的类型错误的无法读取属性 '文件':无法读取的不确定

财产 '的readyState'
+3

***不能读取属性“文件”的不确定***是相当清楚的 – xandercoded

+1

'iframe.contentWindow'是不是跨浏览器? –

+3

附注:对嵌套的三元运算符说“不”。 – FishBasketGordo

回答

3

您正在寻找的DOM元素:

<iframe> 

iframe是一种HTML标记的名称,这个元素(这将被定义为ID =“值”)的ID没有价值,所以你需要使用:

document.getElementsByTagName('iframe')[0] 

更改0到任何是否有你的页面的getElementsByTagName()上的多个iframe会返回结果的数组索引是理想的,即使只有一个页面上的iframe中。

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

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

这样,您就可以获取在所有浏览器内嵌框架,这将让您使用开放(文档对象),写() ,close()方法以及readyState属性。

+1

谢谢...太好了!尝试使用ID最好,parent.document.getElementById(XXXX);不需要[0] ;-) – KingRider

+0

同意。使用ID更好,因为您可以更确定您正在检索您实际需要的元素。 –

2

put标记后的JavaScript源。

这样

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