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;