javascript怎么操作iframe页面里面的dom元素?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript怎么操作iframe页面里面的dom元素?相关的知识,希望对你有一定的参考价值。

a页面中有个:<iframe id="test" name="test" src="iframe.html"></iframe>
iframe.html页面有个 input type="button" value="点击" id="btn">

在a页面中点击iframe页面里面的按钮,然后弹出一个对话框 alert("iframe里面的按钮被成功点击了");
这是我参考写的代码,但是点击按钮根本没弹出,
<script type="text/javascript">
function getIFrameDocument(aID)
var ifr = document.getElementById(aID).contentWindow.document||document.frames[aID].document;
return ifr;

var ifrdoc = getIFrameDocument('test');
var btn=ifrdoc.getElementById('btn');
btn.onclick=function()alert("iframe里面的按钮被成功点击了");
</script>
用firebug调试的时候如下错误提示:
TypeError: btn is null
var btn=ifrdoc.getElementById('btn');
哪里错了?正常的操作iframe里面的dom元素,兼容的写法?

直接调用iframe对象的document就可以,方法和document里的一样。不过注意,如果iframe是跨越引用的,会受到限制,不能访问其中内容。也就是你不能引用百度的页面,篡改其中的内容,只能改自己网站的。
<iframe src="xxx.html" id="myiframe"></iframe>
<script>
var mydoc=document.getElementById("myiframe").document;
mydoc.write("<div id='newdiv'></div>")
mydoc.getElementById("newdiv").innerText="hello";
</script>
参考技术A 您好:解决办法可以这样,写好操作dom元素的方法,然后在其他页面如果是iframe的话,可以用iframe.praent[“iframe的name”].函数名。可以这样调用。还可以用ajax页面传值。在接受页面判断这个值如果标识什么动作,就执行你写好的那个操作dom的动作就可以了。 参考技术B 没有错!在IE下运行是正确的。在chrome就不一定了。本地文件在chrome测试,一直说跨域操作文件,阻止(按F12转到script可以看到错误)。估计上传到服务器可以。追问

在ie下btn.onclick也是没有弹出来啊

追答

我这边可以弹出来啊!
是本地测试不?

追问

是啊,本地测试

以上是关于javascript怎么操作iframe页面里面的dom元素?的主要内容,如果未能解决你的问题,请参考以下文章

javascript 如何获取iframe里面的内容?

IFrame里面的子页面html内容变化时,怎么动态改变IFrame的高度,

js 父页面不能调用iframe页面的方法怎么回事?

jQuery操作iframe里面的Dom问题

html里面,点击按钮时,怎么使用js或jq给iframe里面的表单赋值和提交

如何用javascript 跨域获取iframe子页面的元素信息