【问题标题】:IFrame call parent functionIFrame 调用父函数
【发布时间】:2012-03-30 20:11:54
【问题描述】:

iframe 是否可以调用父级的函数,即使它们不在同一个域中? 当它们不在同一个域中时,我的实际方法会引发安全错误:

<script>
function test()
{ alert('wow');
}
</script>
<iframe src="...."></iframe>

在 iframe 中我会这样做:

<script> 
function fin() 
{ top.test(); } 
</script>

非常感谢:)

【问题讨论】:

标签: javascript html iframe


【解决方案1】:

您不能直接调用该函数(由于same origin policy,但您可以使用postMessage(如this question 的回答中所述)并让事件侦听器调用该函数作为响应。

如果您需要支持 Internet Explorer 7 及更低版本,您将有点 out of luck

【讨论】:

    【解决方案2】:

    不,你不能。同源政策禁止这样做。

    【讨论】:

    • 那不是真的。您可以使用 postMessage。我们在我们的应用程序中这样做。因为就像你使用 ie7 一样,你可能会迷路。
    • 这与“在 iframe 中调用函数”不同,抱歉 :)
    • 可以的。您可以使用 postMessage 发送一条消息,然后让您的侦听器调用该函数。它不完全相同,但实现了相同的目标。
    猜你喜欢
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多