Chrome Javascript双重警报循环?

问题描述 投票:0回答:3

下面的简单代码将输出两个警报,而不是一个Google Chrome浏览器。您能说出为什么只有Chrome吗?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Can you tell?</title>
    <script language="javascript" type="text/javascript">
        function hitme() {
            alert('yep!');
        }
    </script>
</head>

<body>
    <a href="#" onmouseover="hitme();">LINK</a>
</body>
</html>

Chrome将锚点视为文本+是行吗?

是什么使Chrome中的这个双重框?

javascript jquery xhtml dhtml
3个回答
5
投票

在发生类似鼠标悬停这样的事件时发出警报是非常糟糕的(阅读:不可预测)。 mouseover事件处理对于状态更改很有用,但是对于某种交互(如警报)而言则微不足道。

[可能发生的是多次触发mouseover(请注意mouseover与mouseenter不同—注意:不完全支持)请参见http://www.quirksmode.org/js/events_mouse.html,以获取有关鼠标事件的更多详细信息。

务必要注意,不同的浏览器对事件的处理方式不同。例如,在大多数浏览器中,仅当鼠标moves

时才触发mousemove,但是在firefox中(如果我没记错的话)它几乎一直在触发。同理进行鼠标悬停,如果您真的很幸运,您会得到一堆警报窗口,这些窗口会在鼠标悬停在元素上方的那半秒内关闭。

1
投票

我猜这与窗口焦点有关;如果将鼠标移到链接上的速度足够快,则只会显示一个警报框。在Mac上的Safari浏览器中不会发生。


-1
投票

我的第一个建议是尝试使用Safari,这样可以清楚地说明问题是特定于chrome(例如chrome bug)还是Webkit(通常适用于所有基于Webkit的浏览器)。可以想象是:D

© www.soinside.com 2019 - 2024. All rights reserved.