• ベストアンサー

ウィンドウの2重起動を防止したい

こんにちわ! javaScriptからwindow.open()でサブウィンドウを 開いている状態で、再度リンクをクリックした場合は なにもしないようにしたいのですが、現在は、しかたなく 開かれているサブウィンドウに再度同じページを表示 するようにしています。 もし、現在サブウィンドウが開かれている場合は 親ウィンドウのリンクをクリックしても無効とする 方法があれば教えて下さい.

質問者が選んだベストアンサー

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.1

window.open() の戻値を使えば可能です。 # スクリプト部 var newwin; function openWindow(a) {   if (!newwin || newwin.closed) {     newwin = window.open(a.href, a.target, "~");   else     newwin.focus();   return false; } # タグ部 <a href="xxx.html" target="newwin" onClick="return openWindow(this)">~</a> 最初は newwin に値が入っていないので、!newwin が成り立ち、if 文の中の window.open() が実行されます。 2回目以降は !newwin は常に偽となり、2個目の条件 newwin.closed が評価されます。 .closed は、ウィンドウが開いていれば false となり、閉じられていれば true となります。 つまり、開いていれば else 側が実行され、閉じられていたら再度 open するわけです。

関連するQ&A