-1

我有页面 A ; 点击一个链接,我打开一个页面 B(在同一个域中)作为弹出窗口。

弹出窗口重定向(服务器端)到另一个域中的Page C

Page C进行一些操作,完成后,重定向回Page B

现在,从Page B开始,我这样做:

<script type="text/javascript">
    var parent = window.opener;
    parent.HelloWorld();
</script>

HelloWorld()是我在Page A上的一项功能。这就是(对我而言)神奇之处:真正调用了该函数。

这怎么可能?在那一刻,我将该函数称为Page B的父级应该是Page C

4

1 回答 1

3

window.opener不是任何标准的一部分,所以它做任何它想做的事......

但是https://developer.mozilla.org/en-US/docs/Web/API/window.opener声明这是对创建此窗口的窗口的引用,实际上是页面 A。它不是页面重定向到这个页面(想象一下,这意味着在这个会话中访问过的所有页面仍然在内存中并且正在运行!)。

于 2013-08-29T08:10:13.873 回答