window.onblur无法正常工作

Cha*_*III 3 javascript window onblur

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

window.onblur = console.log('blur');
Run Code Online (Sandbox Code Playgroud)

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

Spu*_*ley 23

Ryudice已告诉你该做什么,但没有解释为什么它不能按你的方式工作.了解它的机制将帮助您了解如何进一步.

其原因是,你原来的代码运行console.log('blur')立即命令,并使用电话作为窗口onblur事件的返回值.

返回值console.log()因浏览器而异,但为了参数,我们可以说它返回一个布尔true值.这意味着您的原始代码相当于写这个:

window.onblur = true;
Run Code Online (Sandbox Code Playgroud)

这显然不会像你期望的那样起作用.

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

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

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


ryu*_*ice 20

window.onblur = function() { console.log('blur'); }
Run Code Online (Sandbox Code Playgroud)

  • 现在......如果用户在地址栏中切换标签或点击,我该如何使其工作? (6认同)