下面的简单代码将输出两个警报,而不是一个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中的这个双重框?
在发生类似鼠标悬停这样的事件时发出警报是非常糟糕的(阅读:不可预测)。 mouseover事件处理对于状态更改很有用,但是对于某种交互(如警报)而言则微不足道。
[可能发生的是多次触发mouseover(请注意mouseover与mouseenter不同—注意:不完全支持)请参见http://www.quirksmode.org/js/events_mouse.html,以获取有关鼠标事件的更多详细信息。
务必要注意,不同的浏览器对事件的处理方式不同。例如,在大多数浏览器中,仅当鼠标moves
时才触发mousemove,但是在firefox中(如果我没记错的话)它几乎一直在触发。同理进行鼠标悬停,如果您真的很幸运,您会得到一堆警报窗口,这些窗口会在鼠标悬停在元素上方的那半秒内关闭。我猜这与窗口焦点有关;如果将鼠标移到链接上的速度足够快,则只会显示一个警报框。在Mac上的Safari浏览器中不会发生。
我的第一个建议是尝试使用Safari,这样可以清楚地说明问题是特定于chrome(例如chrome bug)还是Webkit(通常适用于所有基于Webkit的浏览器)。可以想象是:D