これが本当に奇妙な状況であることはわかっていますが、それが真実です。
ページに iframe があります - Frame-A 、 Frame-AからWin-Bというポップアップ ウィンドウを開くので、Win-BはFrame-Aの子です。
win_b = window.open(...);
Win-Bでwindow.openerを使用して、 Frame-A内で javascript を呼び出すことができます。 Frame - A でwin_b.someFunciton()を使用して、 Win- B内で javascript を呼び出すことができます。
ここで、Frame-Aが入っているページを更新します。Frame -Aは win_b への参照を失い、Win-Bはwindow.openerへの参照を失いました。ただし、同じ開いているウィンドウでwindow.open(..)を再度実行して参照を再度取得できるため、 Frame-AからWin-Bで javascript 関数を呼び出すことができます。しかし、 Win-BからFrame-Aにjavascript 関数を呼び出すことができず、 window.openerを復元できません。
問題は、window.openerの参照を再び取得する方法です。基本的に、Win-BでFrame-A参照を取得します。