使用跨域站点但相同位置的JS文件调用Child iFrame中的Javascript函数

时间:2011-04-26 22:16:18

标签: javascript html browser iframe cross-domain

我正在尝试执行以下操作:

主文档调用iFrame中的一个函数,其 URL来自不同的位置,但我试图调用的Javascript函数从加载到主文档

有没有办法做到这一点?

澄清:

  • 主要文件: http://www.main.com
  • iFrame文档: http://www.example.com
  • 我在iFrame中调用的JS函数位于 http://www.main.com/js/script.js

我正在

Permission denied to access property 'js_function'

做的时候

document.getElementById("iframe").contentWindow.js_function(n)

3 个答案:

答案 0 :(得分:5)

即使脚本托管在main.com上,它也会在example.com的上下文中执行,因此被认为是example.com的一部分...因此无法访问main.com窗口中的变量或函数。您可以使用various cross domain communication黑客来解决此问题(或者您可以忽略IE< 8并单独使用window.postMessage。)

另请参见:http://stevehanov.ca/blog/index.php?id=109

答案 1 :(得分:1)

我明白你在做什么。有一个“黑客”使用了两个iframe(如果我没记错的话)。 黑客和你在这里提到的那些都非常模糊,如果他们被故意锁定我也不会感到惊讶。

我能想到的最好的解决方法是在主窗口(iframe外部)中加载js_function()的代码。

您能更具体地了解JS代码的作用吗?我可以帮助你做得更好。

答案 2 :(得分:0)

使用easyXDM's RPC功能,它将XDM与RPC结合在一起。 这方面的一个例子可以在这里看到:http://consumer.easyxdm.net/current/example/methods.html