2012-03-14 75 views
2

iframe可能调用父级功能,即使它们不在同一个域? 我的实际做法电梯的时候都没有在同一个域中的安全错误:IFrame调用父功能

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

而且iframe中,我会做到这一点:

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

非常感谢:)

+0

Dupe http://stackoverflow.com/questions/4122422/cross-domain-hash-change-communication – tkone 2012-03-14 11:33:23

回答

2

没有,你不能。相同的原产地政策禁止这一点。

+0

那不是真的,你可以使用postMessage 。我们在我们的应用程序中执行,因为如果您使用ie7,您可能会迷路。 – tkone 2012-03-14 11:31:16

+0

这不同于“调用函数在iframe中,“对不起:) – ckruse 2012-03-14 11:44:30

+1

它可以。您可以使用postMessage发送一条消息,然后让您的侦听器调用该函数。这不完全相同,但它实现了相同的目标。 – tkone 2012-03-14 11:52:04

4

您不能直接调用函数(由于same origin policy,但您可以使用postMessage(如在回答this question描述),并有一个事件侦听器中调用该函数响应。

你如果你需要支持Internet Explorer 7和更低版本,会有点out of luck

+0

这是一个解决方案吗? http://easyxdm.net/wp/ – 2012-03-14 11:24:37