window.onblur无法正常工作

时间:2012-04-28 06:25:33

标签: javascript window onblur

我似乎无法使window.onblur正常工作。

window.onblur = console.log('blur');

当监听器应用于窗口时,它只是在加载页面时运行,而不是在窗口失去焦点时运行。

3 个答案:

答案 0 :(得分:22)

Ryudice告诉你该做什么,但没有解释为什么它不起作用。了解它的机制将有助于您了解如何进一步。

原因是您的原始代码立即正在运行 console.log('blur')命令,并使用该调用的返回值作为窗口onblur事件。

console.log()的返回值因浏览器而异,但为了参数,我们假设它返回一个布尔true值。这意味着您的原始代码等同于编写此代码:

window.onblur = true;

这显然无法按预期发挥作用。

您需要将window.onblur设置为每次触发onblur事件时都会调用的函数。根据Ryudice的回答,这是通过将代码包装在function() {}中来实现的。

通过不在要调用的函数名称上提供括号,您也可以在简单的情况下实现它。但是,只有当您没有要传递给函数的任何参数时,此方法才有效,因此不适合您的console.log示例。

希望有所帮助。如果你仍然感到困惑,网上有很多资源。尝试谷歌搜索“javascript传递函数作为参数”之类的短语,看看会出现什么。

答案 1 :(得分:20)

window.onblur = function() { console.log('blur'); }

答案 2 :(得分:1)

window.onblur = () => console.log( "blur" );