有一个Web应用程序通过将不同的iframe加载到iself中来工作。它提供了一些子iframe挂钩的代码。
子iframe访问window.top而不是window.parent,并且不受我的控制。一切正常。
现在,我希望将该应用程序作为iframe包含在另一个站点中。该应用程序不需要任何父母"或" top"访问此其他网站。但是,当该应用程序的子iframe执行window.top时,它们会以" top"是另一个网站,而不是应用程序。
理想情况下,我希望window.top(在子iframe中)表示"该应用程序"而不是"在iframe"中包含该应用程序的其他网站。
看来window.top是只读的。我有什么选择?
编辑:我可以完全访问该应用程序和其他站点。它只是该应用程序中固定的子框架。
作为可能解决方案的示例:
编辑2:所以"解决方案"如果进一步嵌套在框架集中(有时是这种情况),则用.parent或.parent.parent替换.top。目前,我可以在用户将其HTML / js(获取iframed)上传到该应用程序的CMS时执行此操作。然后代码永远不会一直上升到其他站点。仍在寻找更多不涉及修改磁盘上文件的选项。
答案 0 :(得分:0)
您无法控制window.top,它始终是顶部窗口。如果您可以访问要嵌入应用程序的页面代码,那么您可以从应用程序中将信息传递给它(取决于您使用的是window.top的内容)。
如果您只是需要从中读取一些信息或让它监听某些事件,您可以使用postmessage
将信息从应用程序框架中继到父框架(被检测为{ {1}},但你运气不好