【发布时间】:2017-06-29 02:09:45
【问题描述】:
有一个 Web 应用程序通过将不同的 iframe 加载到自身中来工作。它提供了一些子 iframe 挂钩的代码。
子 iframe 访问 window.top 而不是 window.parent 并且不受我控制。一切正常。
现在,我想将该应用程序作为 iframe 包含在另一个站点中。该应用程序不需要任何“父”或“顶部”访问此其他站点。但是,当该应用程序的子 iframe 执行 window.top 时,它们最终以“顶部”为另一个站点,而不是应用程序。
理想情况下,我希望 window.top(在子 iframe 中)表示“该应用程序”,而不是“在 iframe 中包含该应用程序的其他网站”。
window.top 似乎是只读的。我有哪些选择?
编辑:我拥有对该应用程序和其他站点的完全访问权限。只有该应用程序中的子框架是固定的。
作为可能解决方案的示例:
- 让该应用程序将假窗口对象插入到子框架中,其中 .top 引用该应用程序。
- 通过服务器端代理传递所有文件,该代理每次都动态重写子框架的代码。
编辑 2:因此,“解决方案”是将 .top 替换为 .parent,或者如果进一步嵌套在框架集中(有时是这种情况),则替换为 .parent.parent。现在,当用户将他们的 HTML/js(被 iframed)上传到该应用程序的 CMS 时,我可以这样做。然后代码永远不会一直上升到另一个站点。仍在寻找更多不涉及修改磁盘文件的选项。
【问题讨论】:
-
你无法控制。
-
我有同样的问题 - 一个使用 window.top 的 iframe 页面,我想将整个内容放入 iframe...
标签: javascript html iframe cross-domain