让我们考虑简单的HTML输入字段
<input type="text" onblur='alert("hello");' />
当鼠标位于此输入字段中并且您尝试在浏览器中打开新标签页(Chrome,IE,...)时, onblur事件正在被触发。我不想以这种方式触发onblur事件。我怎么能避免这个?
答案 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 。