Awo*_*ing 5 html javascript iframe cross-domain
有一个 Web 应用程序通过将不同的 iframe 加载到自身中来工作。它提供了一些子 iframe 挂钩的代码。
子 iframe 访问 window.top 而不是 window.parent 并且不受我的控制。一切正常。
现在,我想将该应用程序作为 iframe 包含在另一个站点中。该应用程序不需要对该其他站点的任何“父”或“顶级”访问权限。但是,当该应用程序的子 iframe 执行 window.top 时,它们最终将“顶部”作为另一个站点,而不是应用程序。
理想情况下,我希望 window.top(在子 iframe 中)表示“该应用程序”,而不是“在 iframe 中包含该应用程序的其他站点”。
window.top 似乎是只读的。我有哪些选择?
编辑:我可以完全访问该应用程序和其他站点。只有该应用程序中的子框架是固定的。
作为可能的解决方案的示例:
编辑 2:所以“解决方案”是将 .top 替换为 .parent,或者 .parent.parent 如果进一步嵌套在框架集中(有时是这种情况)。现在,当用户将他们的 HTML/js(它被 iframe)上传到该应用程序的 CMS 时,我可以做到这一点。然后代码永远不会一直上升到另一个站点。仍在寻找更多不涉及修改磁盘文件的选项。
你无法控制 window.top 是什么,它永远是顶部窗口。如果您有权访问要嵌入应用程序的页面的代码,那么您也许可以从应用程序向该页面传递信息(取决于您使用 window.top 的用途)。
如果您只需要从中读取一些信息或让它侦听某些事件,您可以使用postmessage将信息从应用程序框架中继到父框架(被检测为 的框架window.top,但否则您就不走运了)