[英]window.onblur not working
我似乎无法使window.onblur正常工作。
window.onblur = console.log('blur');
将侦听器应用于窗口时,它仅在加载页面时运行,而不是在窗口失去焦点时运行。
Ryudice告诉了您该怎么做,但没有说明为什么它没有按照您的方式工作。 了解它的机制将帮助您确定如何进一步进行。
原因是您的原始代码正在立即运行 console.log('blur')
命令,并将该调用的返回值用作窗口onblur事件。
console.log()
的返回值在不同的浏览器中有所不同,但是出于参数的考虑,可以说它返回布尔值true
。 这意味着您的原始代码等同于编写以下代码:
window.onblur = true;
显然,这将无法按预期工作。
您需要将window.onblur
设置为每次触发onblur
事件时都会调用的函数。 根据Ryudice的回答,可以通过将代码包装在function() {}
中来实现。
在简单情况下,您也可以通过不提供要调用的函数名称的方括号来实现此目的。 但是,仅当您没有要传递给函数的参数时,此方法才有效,因此不适合您的console.log
示例。
希望能有所帮助。 如果您仍然感到困惑,那么网络上有很多资源。 尝试使用谷歌搜索短语,例如“将JavaScript作为参数传递函数”,然后看看会发生什么。
window.onblur = function() { console.log('blur'); }
window.onblur = () => console.log( "blur" );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.