私は2つのウィンドウを持っており、1つは別のウィンドウから開いているので、opener
「子」ウィンドウにプロパティがあります。
親ウィンドウにはグローバルスコープの関数があり、最初の引数として関数を使用して呼び出す必要があります(コールバックとして使用されます)。
両方のページが同じドメインから開かれているので、同一生成元ポリシーの制限はありません(そう願っています)...
子ウィンドウに次のようなコードがあります
if(window.opener) {
window.opener.myFunction(function() { ... });
}
IEで実行しようとするまで、すべて正常に動作します。このブラウザでは、によって受け取られる引数myFunction
は常にタイプですObject
(でチェックされますtypeof
)。のコードmyFunction
は次のようなものです。
window.myFunction = function(cb) {
alert('Callback type is ' + (typeof cb));
if(typeof cb == 'function')
cb();
else
alert('Not a function!');
}
ライブデモ:http ://elifantiev.ru/ie-opener-issue/first.html
質問は次のとおりです。
- これは標準に準拠した動作ですか?
- この問題の回避策はありますか?