来自一个外部站点的 Javascript 应用程序不在 iframe 中运行

Javascript application from one external site not running within iframe

本文关键字:应用程序 Javascript iframe 运行 站点 外部 一个      更新时间:2023-09-26

我正在使用iframe将我公司人力资源部门网站的访问权限添加到我们的部门网站上。一切正常,除非用户尚未登录javascript密码应用程序不会运行。我读到这是由于同源政策,但无法找到成功的处理方法。是否有一些代码片段可以添加到 iframe 中以防止它阻止其他站点 javascript?

两个页面必须共享相同的document.domain才能相互编写脚本。

https://developer.mozilla.org/en/document.domain

https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript

如果您的父页面位于域"myArea.myCompany.net"下,并且 iframe 中的 HR 页面位于"theirArea.myCompany.net"下,您可以将两个document.domain设置为"myCompany.net",然后它们就可以相互编写脚本。

同源策略意味着不能从另一个域访问帧。无论是 iframe,还是您上方的框架或窗口中的其他任何位置。

目的是保护用户。任何网站都可以添加一个加载 www.facebook.com 的iframe,如果您已登录,只需阅读HTML即可提取您的真实姓名和朋友等。有相同的来源策略来防止这种情况。

没有办法绕过它(如果有,那就是一个错误)。唯一的解决方案是通过将两个页面托管在同一域上来避免此问题。

你必须使用和 IFRAME 吗?为什么不能简单地从该司网站链接到人力资源网站或在弹出窗口中显示它。

没有代码片段会改变同源策略,但也许 CORS (http://en.wikipedia.org/wiki/Cross-origin_resource_sharing) 可以帮助您。

干杯