[removed]不工作([removed] not working)

2019-06-24 00:56发布

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

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

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

Answer 1:

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


Answer 2:

Ryudice告诉你该怎么做,但没有解释为什么它没有自己的方式工作。 了解它的机制将有助于你的工作如何进一步进行。

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

的返回值console.log()浏览器之间变化,但争论的缘故,可以说,它返回一个布尔true值。 这意味着,原来的代码是写这相当于:

window.onblur = true;

这显然是不会像您期望的工作。

你需要的是window.onblur设置为一个将要每个时间调用的函数onblur被触发事件。 这是通过在一个包装的代码实现function() {}按照Ryudice的回答。

您还可以通过对要调用的函数名称不提供的支架实现它在简单的情况。 但这种方法只适用,如果你没有,你想传递给函数的任何参数,因此不会适合你console.log例子。

希望帮助。 如果你还在疑惑,有大量的资源在网络上。 试着google搜索类似的短语,“路过的JavaScript函数作为参数”,看看会发生什么吧。



Answer 3:

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


文章来源: window.onblur not working