2

単純な HTML 入力フィールドを考えてみましょう

<input type="text" onblur='alert("hello");' />

マウスがこの入力フィールドにあり、ブラウザー (Chrome、IE など) で新しいタブを開こうとすると、onblur イベントがトリガーされます。そのような方法で onblur イベントをトリガーしたくありません。どうすればこれを回避できますか?

4

1 に答える 1

2

document.activeElement要素がDOMで実際にフォーカスを失ったかどうかを確認するために使用できます。(ブラウザの互換性もかなり広いです。)

コードは次のようになります。

HTML

<input type="text" onblur='blurred(this);' />

JS

function blurred(elem) {
    if (elem != document.activeElement) {
        alert("Bye !");
    }
}

この短いデモも参照してください。

于 2013-06-06T09:40:23.350 に答える