Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript=AddEventlistener仅在Chrome上工作_Javascript_Addeventlistener - Fatal编程技术网

Javascript=AddEventlistener仅在Chrome上工作

Javascript=AddEventlistener仅在Chrome上工作,javascript,addeventlistener,Javascript,Addeventlistener,我想使用一个监听器,当鼠标离开屏幕时触发一个函数。我正在使用以下代码: content = 'blabla'; document.addEventListener("mouseleave", function(){ display_exit(content); }); function display_exit(content) { console.log(content); } 当我在Chrome上执行这段代码时,它可以在Firefox或Explorer/Edge上运行,而不会发生任何事情

我想使用一个监听器,当鼠标离开屏幕时触发一个函数。我正在使用以下代码:

content = 'blabla';
document.addEventListener("mouseleave", function(){ display_exit(content);  });
function display_exit(content)
{ console.log(content); }
当我在Chrome上执行这段代码时,它可以在Firefox或Explorer/Edge上运行,而不会发生任何事情

在我的语法中,Chrome是宽容的,而不是其他的吗

谢谢

Laurent

事件仅为类型的节点,不适用于
节点或:

类型鼠标删除

可信目标元素

您可以将侦听器附加到
documentElement
,它将工作:

document.documentElement.addEventListener("mouseout", ...);
此外,确保文档(html
元素)具有100%的高度,否则,根据文档元素中可能没有输入的内容,可能无法触发请假

看这把小提琴:

根据规范,我认为这是Chrome中的一个缺陷,允许将事件侦听器附加到文档本身。

事件只是类型的节点,而不是
节点或:

类型鼠标删除

可信目标元素

您可以将侦听器附加到
documentElement
,它将工作:

document.documentElement.addEventListener("mouseout", ...);
此外,确保文档(html
元素)具有100%的高度,否则,根据文档元素中可能没有输入的内容,可能无法触发请假

看这把小提琴:

根据规范,我认为这是Chrome中的一个bug,允许将事件监听器附加到文档本身。

“mouseleave”事件由
元素
对象触发,不会冒泡。文档(
document
)不是
元素
,因此将事件侦听器附加到文档上没有任何效果,因为这两个因素的组合

这与Firefox无关。在本例中,它是由Web标准机构W3C设计的。如果说有什么区别的话,Firefox遵守了规范,这显然是Chrome不能说的

在使用该技术之前,请务必查阅权威参考资料,并质疑您自己认为错误的行为:(MDN,以及其他人,将其用作源)

您的解决方案是修改代码,考虑您是否可以使用事件侦听器,或者将事件侦听器附加到要侦听“mouseleave”事件的元素,包括
document.documentElement
元素(如果适用)。

“mouseleave”事件由
element
对象触发,并且不冒泡。文档(
document
)不是
元素
,因此将事件侦听器附加到文档上没有任何效果,因为这两个因素的组合

这与Firefox无关。在本例中,它是由Web标准机构W3C设计的。如果说有什么区别的话,Firefox遵守了规范,这显然是Chrome不能说的

在使用该技术之前,请务必查阅权威参考资料,并质疑您自己认为错误的行为:(MDN,以及其他人,将其用作源)


您的解决方案是修改您的代码,考虑您是否可以处理或将事件侦听器附加到您想要侦听“mouseleave”事件的元素,包括
document.documentElement
元素(如果适用)。

Andy,您使用的是
mouseout
而不是
mouseleave
。Andy,你在那里使用了
mouseout
,而不是
mouseleave
。那太棒了,这正是我需要的。我尝试了mouseout的替代方案,但并没有完全做到我想要的。谢谢太棒了,这正是我需要的。我尝试了mouseout的替代方案,但并没有完全做到我想要的。谢谢