0

ウィンドウを開いたときにフォーカスを外そうとしています。状況は次のとおりです。

  • クリックすると新しいウィンドウを開き、blur()メソッドを自動的に呼び出すボタンのあるメインウィンドウがあるので、ウィンドウはバックグラウンドになっているはずですが、何も起こらないので、FirefoxとChromeの最後のバージョンで試しました。

    function openWindow() {
      var exampleWin = window.open('example.html','Example','width=500,height=500');
      exampleWin.blur();
    }
    // and the HTML:
    <button onclick="openWindow();">Open Window</button>
    

コードはとても単純ですが、なぜそれが機能しないのかわかりません。MDNのドキュメントを見ても、すべて問題ないようです。

- 編集 -

最後に、少し異なるアプローチで解決策を見つけました。

function openWindow() {
            /* This time I don't use var keyword, so the exampleWin variable 
               will have a global scope */
    exampleWin = window.open('example.html','Example','width=500,height=500');
}

function focusFn() {
    exampleWin.focus();
}

function blurFn() {
    exampleWin.blur();
}

// The HTML:
<button onclick="openWindow();">Open Window</button>
<button onclick="focusFn();">Focus</button>
<button onclick="blurFn();">Blur</button>

この方法では正しく機能しますが、openWindow()関数内で呼び出すのではなく、onclickイベントを使用してfocus / blur関数を呼び出す場合は、とにかく問題ありません。

4

3 に答える 3

1

代わりに、メイン ウィンドウにフォーカスを当ててみてください。

function openWindow() {
  var exampleWin = window.open('example.html','Example','width=500,height=500');
  window.focus();
}
于 2013-01-20T20:01:46.903 に答える
0

exampleWin.blur() ではなく exampleWin.focus() を使用してください

于 2013-01-20T20:05:20.087 に答える