2

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

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

当鼠标在此输入字段中并且您尝试在浏览器(Chrome、IE、...)中打开新选项卡时,将触发 onblur 事件。我不想以这种方式触发 onblur 事件。我怎样才能避免这种情况?

4

1 回答 1

2

您可以使用它document.activeElement来检查元素是否确实在 DOM 中失去了焦点。(浏览器兼容性也很广泛。)

您的代码可能如下所示:

HTML

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

JS

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

另请参阅这个简短的演示

于 2013-06-06T09:40:23.350 回答