我知道这确实是一个奇怪的情况,但这是事实。
我在页面中有一个iframe - Frame-A ,我将从 Frame-A 打开一个名为 Win-B 的弹出窗口因此, Win-B 是 Frame-A 的孩子。
win_b = window.open(...);
我可以在 Win-B 中使用 window.opener 来调用 Frame-A 中的javascript,我可以使用 win_b。 Frame-A中的someFunciton()在 Win-B 中调用javascript。
现在,我刷新 Frame-A 所在的页面。 Frame-A 丢失对win_b的引用, Win-B 丢失 window.opener 的引用。但是,我仍然可以从 Frame-A 中调用 Win-B 中的javascript函数,因为我可以再次执行 window.open(..)同一个打开的窗口再次获取参考。但是我无法从 Win-B 调用javascript函数到 Frame-A ,我无法恢复 window.opener !< / p>
问题是如何再次取回 window.opener 的引用。基本上,在 Win-B 中获取 Frame-A 引用。
答案 0 :(得分:0)
我真的只是猜测这里,我没有测试过,但是: 你能否将Frame-A中的函数引用从Frame-A传递给Win-B:
win_b.setCallback( callback );
其中callback
在Frame-A中起作用
刷新Frame-A并重新建立对Win-B的引用。