2 u011218527 u011218527 于 2016.01.31 20:56 提问

怎样实现点击iframe导入页面中的按钮关闭这个iframe?

我现在有个页面A,里面有个iframe(假设id为main)。这个iframe导入的页面B里面有个按钮(假设id为btn)。我想要点击这个按钮,关闭整个iframe。
请问怎样才能实现??

我也搜过一些答案。比如在B的js文件里为btn添加click事件函数:
document.getElementById("btn").onclick=function(){
window.parent.document.getElementById("main").style.display="none";
}

我试过了,然而这种方法并不能隐藏iframe。跪求大神们指点~~~谢谢

6个回答

showbo
showbo   Ds   Rxr 2016.02.01 09:25

代码绝对没有问题,前提是不能跨域并且代码要放到按钮后面,要不找不到对象。没有发布网站通过http访问时,不要使用webkit核心浏览器(如chrome,360急速),无法相互访问

 document.getElementById("btn").onclick=function(){
 alert(11)
window.parent.document.getElementById("main").style.display="none";
}
u011218527
u011218527 回复无聊码农: 恩恩,好的,多谢!我研究研究~
接近 2 年之前 回复
showbo
showbo 回复阿琛Bonnie: 这个是安全限制问题,你要调试自己增加启动参数。http://www.w3dev.cn/article/20141031/file-protocol-config-chrome-support-ajax-request.aspx
接近 2 年之前 回复
u011218527
u011218527 能否再请教下,为什么没有发布的话就不能互相访问呢?谢谢!
接近 2 年之前 回复
u011218527
u011218527 能否再请教下,为什么没有发布的话就不能互相访问呢?谢谢!
接近 2 年之前 回复
u011218527
u011218527 谢谢谢谢!果然是没有发布的问题。不过发现还确实是像二楼说的那样还要在iframe外面加上div才行…………加上没发布时,试了各种浏览器都不行……发布了再用Chrome访问就可以了
接近 2 年之前 回复
u011218527
u011218527 谢谢谢谢!果然是没有发布的问题。不过发现还确实是像二楼说的那样还要在iframe外面加上div才行…………加上没发布时,试了各种浏览器都不行……发布了再用Chrome访问就可以了
接近 2 年之前 回复
devmiao
devmiao   Ds   Rxr 2016.01.31 22:39
sinat_26745925
sinat_26745925   2016.01.31 21:44

图片说明

u011218527
u011218527 谢谢!确实要加个div才行~不过还得是通过发布了的网站访问,不然在本地的话还是不行。。。你和六楼的答案结合起来我的问题就解决啦
接近 2 年之前 回复
sinat_26745925
sinat_26745925   2016.01.31 21:43

在 iframe外面加一个div,btn的事件来改变这个div的隐藏。


                    document.getElementById("btn").onclick=function(){

window.parent.document.getElementById("changeDiv").style.display="none";
}

july_apple
july_apple   2016.01.31 22:12

我在IE下试过了,是可以的。

july_apple
july_apple   2016.01.31 22:16

在父页面写函数,然后在子页面调用也是可以的。

u011218527
u011218527 谢谢你……不过我试了下,单纯这样感觉还是不行……我最后发现有两个问题:第一要在iframe外侧加个div,需要隐藏的是这个div;第二是得发布了网站才有用,直接在本地是无法隐藏的……
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!