我有 Page A ;点击链接,我打开一个 Page B (在同一个域中)作为弹出窗口。
弹出窗口将重定向(服务器端)设为 Page C ,位于另一个域!
比 Page C 进行一些操作,完成后重定向回页面B 。
现在,从 Page B ,我做:
<script type="text/javascript">
var parent = window.opener;
parent.HelloWorld();
</script>
HelloWorld()
是我在 Page A 上的一项功能。它就在这里(对我来说)魔术:这个函数真的被称为。
这怎么可能?在那一刻,我将该功能称为 Page B 的父级应该 Page C 。
答案 0 :(得分:3)
window.opener
不是任何标准的一部分,所以它可以做任何想做的事情......
但是https://developer.mozilla.org/en-US/docs/Web/API/window.opener表示它是对创建此窗口的窗口的引用,实际上是页面A.它是不重定向的页面到这个页面(想象一下,这意味着在此会话中访问过的所有页面仍在内存中并正在运行!)。