2017-04-14 69 views
0

postMessage()を使用して、親ウィンドウから生成された新しいウィンドウにデータを送信しようとしています。 postMessage()はchrome/firefoxでは正常に動作しますが、Internet ExplorerではaddEventListenerに窒息しているようで、新しいページにデータが送信されていません。window.postMessage Internet Explorer 11サポート

私が実装しているattachEventを使用する必要がありますが、子ページはaddEventListenerをサポートしていることを理解しています。親ページだけが子を参照していません。

親:

var newTab = window.open('community_PrinterFriendlyEligibility'); 
if (newTab.addEventListener) { 
    console.log('add1'); 
    newTab.addEventListener('load', function() { 
     console.log('add2'); 
     newTab.postMessage(data,'*'); 
    }); 

} else if (newTab.attachEvent) { 
    console.log('attach1'); 
    newTab.attachEvent('load', function() { 
     console.log('attach2'); 
     newTab.postMessage(data,'*'); 
    }); 
} 

子供:IEで

if (window.addEventListener) { 
    console.log('add'); 
    window.addEventListener('message', function(event) { 
     //process chrome 
    }, false); 
} else if (window.attachEvent) { 
    console.log('attach'); 
    window.attachEvent('message', function(event) { 
     //process IE 
    }); 
} 

デバッグ:

Parent Window: 
    attach1 

child Window: 
    add 

デバッグChromeで:

Parent Window: 
    add1 
    add2 

child Window: 
    add 

だから、IEで、子ウィンドウの親参照がaddEventListenerを持っていませんが、IE11では必要ないです私の知る限り、子ウィンドウがaddEventListener

答えて

0

を受け入れ:

http://caniuse.com/#search=addEventListenerちょうどIE11でこれをテストし、確認することができますaddEventListenerを使用します。

IE8を親ページでエミュレートしていますか?これは添付を使用します。

新しいウィンドウは、デフォルト(エッジ)に戻ります。これは、追加を使用します。

+0

子ウィンドウを起動すると、attachEventだけを使用できます。 addEventListenerは、子ページにもかかわらず動作します。私はエミュレータを使用していません – Programatic

+0

コンソール経由でいくつかのテストを行いました。 IE11.0.9600.17501 - エッジモード:window.addEventlistenerは関数であり、window.attachEventは未定義です。 IE8エミュレーションでは、逆の方法です。 newTabでは、ターゲットウィンドウに設定されたmodusに依存しますが、これは意味があります。エッジモード:addEventListenerは関数であり、attachEventは未定義です。 IE8エミュレーション:addEventListenerは未定義です。attachEventはオブジェクトです。 – yezzz

+0

もう1つの質問:ページに、IEにレガシーモードを使用させるメタタグはありますか? Internet Explorerの[ファイル] - [プロパティ]メニューでは、テストサイトがどのIEセキュリティゾーンにマップされているかを確認できます:https://msdn.microsoft.com/nl-nl/library/jj676915(v=vs.85).aspx – yezzz

関連する問題