让我们考虑简单的 HTML 输入字段
<input type="text" onblur='alert("hello");' />
当鼠标在此输入字段中并且您尝试在浏览器(Chrome、IE、...)中打开新选项卡时,将触发 onblur 事件。我不想以这种方式触发 onblur 事件。我怎样才能避免这种情况?
让我们考虑简单的 HTML 输入字段
<input type="text" onblur='alert("hello");' />
当鼠标在此输入字段中并且您尝试在浏览器(Chrome、IE、...)中打开新选项卡时,将触发 onblur 事件。我不想以这种方式触发 onblur 事件。我怎样才能避免这种情况?
您可以使用它document.activeElement
来检查元素是否确实在 DOM 中失去了焦点。(浏览器兼容性也很广泛。)
您的代码可能如下所示:
HTML
<input type="text" onblur='blurred(this);' />
JS
function blurred(elem) {
if (elem != document.activeElement) {
alert("Bye !");
}
}
另请参阅这个简短的演示。