有一个网络应用程序,它通过加载不同的iframe进入自身来工作。 它提供一些代码,子iframe钩入其中。
子iframe访问window.top而不是window.parent,这是我无法控制的。 一切正常运作。
现在,我想将该应用程序作为iframe包含在另一个站点中。 该应用程序不需要访问此其他站点的“parent”或“top”。 然而,当该应用程序的子iframe执行window.top时,它们的“top”会成为其他站点,而不是该应用程序。
理想情况下,我希望window.top(在子iframe中)意味着“该应用程序”,而不是“将该应用程序包含在iframe中的其他站点”。
似乎window.top是只读的。 我有哪些选项?
编辑:我完全可以访问该应用程序和其他站点。 只有该应用程序内部的子框架是固定的。
可能的解决方案示例:
1. 让该应用程序向子框架插入虚假的window对象,其中.top指向该应用程序。 2. 将所有文件传递到服务器端代理,每次动态重写子框架的代码。
编辑2:因此,“解决方案”是将.top替换为.parent,或者如果更深嵌套在frameset中,则是.parent.parent(有时候是这种情况)。 目前,当用户上传其HTML / js(被iframed)到该应用程序的CMS时,我可以执行此操作。 然后,代码永远不会上升到其他站点。仍在寻找不涉及修改磁盘上的文件的更多选项。
子iframe访问window.top而不是window.parent,这是我无法控制的。 一切正常运作。
现在,我想将该应用程序作为iframe包含在另一个站点中。 该应用程序不需要访问此其他站点的“parent”或“top”。 然而,当该应用程序的子iframe执行window.top时,它们的“top”会成为其他站点,而不是该应用程序。
理想情况下,我希望window.top(在子iframe中)意味着“该应用程序”,而不是“将该应用程序包含在iframe中的其他站点”。
似乎window.top是只读的。 我有哪些选项?
编辑:我完全可以访问该应用程序和其他站点。 只有该应用程序内部的子框架是固定的。
可能的解决方案示例:
1. 让该应用程序向子框架插入虚假的window对象,其中.top指向该应用程序。 2. 将所有文件传递到服务器端代理,每次动态重写子框架的代码。
编辑2:因此,“解决方案”是将.top替换为.parent,或者如果更深嵌套在frameset中,则是.parent.parent(有时候是这种情况)。 目前,当用户上传其HTML / js(被iframed)到该应用程序的CMS时,我可以执行此操作。 然后,代码永远不会上升到其他站点。仍在寻找不涉及修改磁盘上的文件的更多选项。