【Web】同じ名前の画面を呼び出した時の動作について

window.openを利用して別画面を表示させることは結構あると思うのですが、
呼び出した画面(以下、子画面)から呼び出し元画面(以下、親画面)の値を
JavaScriptで書き換える時の動作がIEとChromeとで動作が異なっていました。

動作条件としては少し特殊なのですが、下記の2つです。

  • 複数の画面から子画面を呼び出す
  • 子画面の名前は同じ(呼び出す度に子画面は更新される)

動作の違いについては下記の通りです。

ブラウザ JavaScriptで子画面から親画面の値を
変更した時の動作内容
IE 一番最初に子画面を開いた親画面の値が書き換わる
Chrome 一番最後に子画面を開いた親画面の値が書き換わる

動作的にはChrome側の動きの方がしっくりと来るのですが、
EDGEでも動作は同じだったので仕様みたいですね。

基本的には呼び出し時に別々な名前を子画面につけて
子画面を複数表示できるようにした方がいいですが、
どうしてもという場合は気をつけたほうが良さそうですね。

動作確認用のサンプルソースは↓です。

Web系の仕事をやり始めて色々と気付く_(:3」∠)_

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください