我注意到有时IE6/IE7/IE8不总是触发onclick事件(从按钮点击时)。在最后一个onclick事件被触发后,似乎有几秒钟的宽限期。
我决定使用以下代码测试这种行为:
我决定使用以下代码测试这种行为:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<script type="text/javascript">
window.onload = function(){
document.getElementById('clicker').onclick = function(){
var i = 0
return function(){
i+= 1
this.value = i.toString()
}
}()
}
</script>
</head>
<body>
<input type="submit" value="click here" id="clicker"/>
</body>
</html>
浏览器比较(1/4倍速)
您可能已经注意到,在IE 6-8上,需要点击两次按钮才能触发事件,而对于9 / firefox / chrome,每次都会触发事件。
这是什么原因? IE6和8在Windows XP的虚拟机(VirtualBox)上进行了测试。
其他:
- 我使用“submit”和“button”得到了相同的结果。
- 使用“Onmouseup”作为onclick的替代似乎可以解决问题。