おっさんSEの備忘録

技術系・その他なんでも。調べたら見つからなかったものを中心に備忘を兼ねてまとめます。たまには趣味の音楽も。

IE11でのpostMessageが何故か上手く動かない件について

結論:IEはさっさと死滅しろ!!!

 

親画面から小画面を開いて、

親側は

addEventListener("message", callback関数);

小画面から

window.opener.postMessage("hogehoge", "*");

 

なんてよくあるパターンだとは思うんだけど、

見事にIEだけ動かなくてなんでじゃーと1日ほど悩んでいたのだけど解決。

 

aタグを用いてtarget="_blank"で小画面を開くと、何故かpostMessageがリスナーで検知できないのかpostMessageが上手く働かない。

 

window.opener自体は正しく認識されるのに何故か上手くいかん。

window.opener.location.hrefとか普通に動くし。

 

なのに!なのに!

なんでpostMessage上手くいかんのよ?

 

そして情報が少ない。

探しても探しても出てくるのは

「クロスドメインでは動きません」ばっかり。

 

素直にwindow.openを使うと上手く動きました。

IE11で確認。それより前のバージョンは知らん。やりたくない。

 

大事なことなので2回言います。

IEはさっさと死滅しろ!!!

 

以上