让我们考虑简单的 HTML 输入字段
<input type="text" onblur='alert("hello");' />
当鼠标位于此输入字段中并且您尝试在浏览器(Chrome、IE...)中打开新选项卡时, onblur 事件正在被触发。我不想以这种方式触发 onblur 事件。我怎样才能避免这种情况?
最佳答案
您可以使用document.activeElement
检查元素是否确实在 DOM 中失去焦点。 ( Browser compatibility 也很宽。)
您的代码可能如下所示:
HTML
<input type="text" onblur='blurred(this);' />
JS
function blurred(elem) {
if (elem != document.activeElement) {
alert("Bye !");
}
}
另请参阅此 short demo 。
关于javascript - 在浏览器中打开新选项卡时防止 onBlur 事件发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16957022/