2012-05-08 1 views
2
var openedWindow = window.open("test.html", "title"); 

openedWindow.addEventListener("load", function() { 
    console.log("received load event"); 
}, false); 

開いているウィンドウからロードイベントを取得したいとします。上記のコードは動作しますが、コールバック関数はOpera 11.62(他のブラウザでも動作します)で呼び出されることはありません。私がプッシュした内部バグレポート(CORE-46278)少し -Opera:window.open()からロードイベントを取得できません。

これはオペラの既知のバグのようです
var openedWindow = window.open("test.html", "title"); 

window.setTimeout(function() { 
    openedWindow.addEventListener("load", function() { 
     console.log("received load event"); 
    }, false); 
}, 0); 

答えて

0

EDIT:私は0msとタイムアウト後にイベントを登録するときに動作します前方に

私が考えることができる唯一の回避策は、ポップアップの内容 - タイプopener.popupLoaded()からのコールバックを追加することです。しかし、これはパフォーマンス上の利点ももたらします。スクリプト環境が準備されていて、トークイベントを待つのではなく、話したいスクリプトが実行されているときに、ポップアップと対話することができます。

+0

バグレポートを送信していただきありがとうございました:) – Martin

+0

あなたの回避策に付いている唯一の問題は、ポップアップのURLが固定されていないため、不明です。 – Martin

+0

そのポップアップの内容にスクリプトを追加することができれば、コールバックは正常に動作するはずです。 – hallvors

関連する問題