4

仕様によると、ウィンドウオブジェクトでpostMessage()を使用できるはずです。Mozillaによると、私もopen()されたウィンドウでそれを実行できるはずです。

ただし、Robert NymanのpostMessageの例を使用して、ウィンドウ間で機能するようにしました。ただし、IE10もChromeも、新しく開いたウィンドウにpostMessage関数を提供していないようです。

var target = … // original declaration
popoutbutton.onclick = function(evt) {
    realWin = window.open(iframeWin.frameElement.src, "window1", "width=600,height=400,status=yes,scrollbars=no,resizable=yes");
    target = realWin;
    target.focus();
};

// …snip…

target.postMessage(myMessage.value, expectorigin); // <-- fails because target.postMessage() is undefined

私は何かが足りないのですか、それともこの機能はまだありませんか?

-以下の更新-

開発者プレビューは単にそれをしていないようです。コンシューマープレビューで再試行しました。IE10(ビルド8250)は期待どおりに動作します。ご協力いただきありがとうございます!

4

1 に答える 1

0

Chrome 15.0.874.121で動作させることができますが、サンプルではtarget.postMessage、​​ウィンドウを開く前に呼び出していますが、最初に設定されたコードはスキップしていますtarget

postMessageまた、新しいウィンドウのコンテンツがロードされる前に(または、少なくともイベントリスナーをアタッチするのに十分なロードされる前に)呼び出すという問題が発生する場合があります。したがって、実際に何も聞いていないときにイベントが発生する可能性があります。このシナリオでは、新しく開いたウィンドウが確実に読み込まれるように、待機を追加する必要がある場合があります。

Internet Explorer 10では、スクリプトを試すたびにエラーSCRIPT16388:操作が中止されます。10秒待っても。

于 2012-03-14T17:01:09.950 に答える