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

Call Javascript Function in Child iFrame with Cross Domain site but Same location JS file

本文关键字:调用 文件 JS iFrame 函数 Javascript 中的 站点 位置      更新时间:2023-09-26

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

主文档调用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)

即使脚本托管在main.com上,它也是在example.com的上下文中执行的,因此被认为是example.com的一部分。。。因此不能访问CCD_ 4窗口中的变量或函数。你可以通过各种跨域通信破解来解决这个问题(或者你可以忽略IE<8,自己使用window.postMessage(。

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

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

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

你能更具体地说明JS代码的作用吗?我也许能帮得更好。

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