代码改变世界

js中操作iframe的DOM(兼容IE,firefox,chrome)

2012-10-30 15:35  前端小个  阅读(5383)  评论(1编辑  收藏  举报

今天重新看《javascript权威指南》发现在javascript操作iframe的DOM中还存在一些缺陷,故此把总结出来,为大家备用:

A.HTML

<!doctype html>
<html>
<head></head>

<body>

<iframe id="iId" name="iId" src="sss.html" ></iframe>
<div id="ddd">
</div>
</body>
</html>

B.HTML

<!doctype html>
<html>
<head>

</head>
<body>
<h1 id="d">s</h1>
<p>早上吃早点,中午约会吃饭,下午K歌,晚上和哥哥瞎折腾</p>
</body>
</html>

要想在A页面中访问B页面中的DOM,我们可以用一下方法:

function getframe(){

var Oframe=document.getElementById(_id).contentDocument||document.frames[_id].document;

return Oframe;

}

var aa=getframe("iId").getElementById("d").innerHTML;

alert(aa);   //s

其中对于火狐的话就是:document.getElementById(_id).contentDocument;

对于ie的是:document.frames[_id].document;

 

因为chrome(谷歌)的本身原因,所以本地机上是不允许操作的,如果要进行操作可以再服务器上apache或tomcat中运行,原理跟火狐一样。

如果错误,请大家提出,谢谢。

对于子窗口访问父窗口就使用parent;