如何在iframe内部/内部关闭iframe

时间:2017-09-06 16:38:40

标签: javascript html iframe

我的一个网站上有一个iframe我在其他一些网域上使用过。这个iframe将从窗口的左侧滑出,并且只占该页面宽度的600px。

我想让用户点击关闭按钮时关闭iframe

关闭按钮位于iframe的 url / src 内。

我想知道如何在用户点击关闭按钮时将其display: none添加到 iframe / parent iframe < / em>的

这是其他网站上使用的iframe

<iframe src="http://iframe-src.com/this/iframe" id="iframe">

这就是我在http://iframe-src.com/this/iframe源代码中所拥有的:

function CloseIframe() {
  document.getElementById('iframe').style.display = "none";
}

<p onclick="CloseIframe()">Close</p>

2 个答案:

答案 0 :(得分:1)

如果没有父网站所有者的合作,这是不可能的:跨域安全规则将阻止您直接进入父级以隐藏iframe本身。你最接近的可能是隐藏iframe的内容(例如,通过在身体上设置display:none) - 这会使框架本身不可见,但iframe区域内的点击将不会落到父窗口。 (不幸的是,即使您在框架pointer-events:none上设置了body,也会出现这种情况。)

您最好的选择可能是为这些网站提供一个可以与您的iframe标签一起嵌入的脚本,该标签可以处理父级内框架的“打开”和“关闭”,避免交叉完全是域名问题。 (就此而言,脚本本身也可以注入iframe,因此他们仍然只有一个元素要添加到他们的文档中;它只是一个脚本标记而不是iframe。)

答案 1 :(得分:0)

<iframe src="http://iframe-src.com/this/iframe" id="iframe"> </iframe>
<script type="text/javascript">
        function CloseIframe() { 
        document.getElementById('iframe').style.display = "none";  
        } 
</script>
<p onclick="CloseIframe()">Close</p>