在浏览器中打开新选项卡时防止onBlur事件发生

时间:2013-06-06 08:18:58

标签: javascript events onblur

让我们考虑简单的HTML输入字段

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

当鼠标位于此输入字段中并且您尝试在浏览器中打开新标签页(Chrome,IE,...)时, onblur事件正在被触发。我不想以这种方式触发onb​​lur事件。我怎么能避免这个?

1 个答案:

答案 0 :(得分:2)

您可以使用 document.activeElement 来检查元素是否确实在DOM中失去了焦点。 ( Browser compatibility 也非常广泛。)

您的代码可能如下所示:

HTML

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

JS

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

另请参阅此 short demo