プロが教える店舗&オフィスのセキュリティ対策術

こんにちわ!

javaScriptからwindow.open()でサブウィンドウを
開いている状態で、再度リンクをクリックした場合は
なにもしないようにしたいのですが、現在は、しかたなく
開かれているサブウィンドウに再度同じページを表示
するようにしています。

もし、現在サブウィンドウが開かれている場合は
親ウィンドウのリンクをクリックしても無効とする
方法があれば教えて下さい.

A 回答 (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 するわけです。
    • good
    • 6

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A