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

发布于 2024-11-03 15:38:45 字数 544 浏览 2 评论 0原文

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

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

I am trying to do the following:

Main document calls a function in iFrame whose URL is from a different location but the Javascript function I'm trying to call loaded from the same domain as the main document.

Is there any way to do this?

To clarify:

  • Main document: http://www.main.com
  • iFrame document: http://www.example.com
  • JS function i'm calling in iFrame is at http://www.main.com/js/script.js

I'm getting

Permission denied to access property 'js_function'

When doing

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

段念尘 2024-11-10 15:38:58

我明白你在做什么。有一个“黑客”利用了两个 iframe(如果我没记错的话)。
该黑客攻击和您在这里提到的黑客攻击都非常晦涩难懂,如果它们被故意锁定,我不会感到惊讶。

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

能具体说一下JS代码的作用吗?我也许能提供更好的帮助。

I see what you're doing. There was a "hack" that made use of two iframes (if I remember correctly).
Both that hack and the one you mention here are awfully obscure, and I wouldn't be surprised if they have been locked down knowingly.

The best fix I can think of is to load the code for js_function() in the main window (outside of the iframe).

Can you be more specific on what the JS code does? I may be able to help better.

梦与时光遇 2024-11-10 15:38:58

使用easyXDM的 RPC功能,它结合了XDM和RPC。
可以在这里看到这样的示例: http://consumer.easyxdm.net/current/示例/methods.html

Use easyXDM's RPC feature, it combines XDM with RPC.
An example of this can be seen here: http://consumer.easyxdm.net/current/example/methods.html

原来分手还会想你 2024-11-10 15:38:57

即使脚本托管在 main.com 上,它也是在 example.com 的上下文中执行,因此被视为 main.com 的一部分。 code>example.com ...因此无法访问 main.com 窗口中的变量或函数。您可以使用 各种 通信 黑客(或者您可以忽略 IE <8 并使用 window.postMessage 本身)。

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

Even though the script is hosted on main.com it is executed in the context of example.com and therefore is considered to be part of example.com ... and therefore has no access to variables or functions in the main.com window. You can hack around this with various cross domain communication hacks (or you can ignore IE < 8 and use window.postMessage by itself).

SEE ALSO: http://stevehanov.ca/blog/index.php?id=109

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文