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

Prevent onBlur event occurency while opening new tab in browser

本文关键字:选项 事件 onBlur 浏览器 新选项      更新时间:2023-09-26

让我们考虑简单的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 !");
    }
}
这个<<p>看到,strong>短演示。