【发布时间】:2014-01-08 22:12:49
【问题描述】:
我有一个在 IE 浏览器中运行的本地 HTML。当本地 HTML 打开一个在远程 HTTP 服务器上加载页面的子窗口时。在子窗口中进行几次用户交互后,最终的远程页面运行 JavaScript 来关闭子窗口,我想在父窗口中调用一个函数以在关闭之前传回一些信息。
我以为我可以简单地在子窗口中进行以下调用
window.parent.CallbackFunct();
但是,调用不起作用。我做了一些研究,有人提到如果父窗口通过 file:\ 加载 HTML(这是我的情况),由于同源策略,子窗口无法调用父窗口函数。
JavaScript window.opener call parent function
我上面的链接建议通过 HTTP:// 访问所有页面,但我不能。父窗口必须从本地文件系统访问页面。
有什么方法可以让它工作吗?
【问题讨论】:
-
window.opener.CallbackFunct()应该怎么做? -
也许可以试试stackoverflow.com/q/3076414/740639的一些建议
-
@meriusnn window.opener.CallbackFunct() 也不起作用。和 window.parent.CallbackFunct() 一样
-
@Walter 感谢您的链接。这是一篇关于处理 COP 的非常全面的文章。在这些选项中,window.postMessage 看起来是最有前途的方法,并且相信它可以与 IE10 一起使用。但是,它在 IE10 中对我不起作用。我尝试了以下方法:
-
1) 在父窗口上定义并添加消息监听函数; 2)在子窗口中,我通过window.parent.postMessage('msg', '*'); 向父窗口发送消息
标签: javascript html window