【发布时间】:2011-10-24 13:14:45
【问题描述】:
这让我发疯了,这是 HTML 代码。
<html>
<head>
<script>
function init() {
console.log("fire once");
window.onhashchange = function() {
console.log(location.hash);
}
}
</script>
</head>
<body onload="init();">
<a href="#t1">T1</a>
<a href="#t2">T2</a>
</body>
</html>
重现错误的步骤(我相信是错误),打开控制台,单击 T1,单击 T2,单击返回,单击返回...在 Firefox 上,这是控制台输出(我在 [] 中添加了鼠标操作)。
[load]
fire once
[click T1]
#t1
[click T2]
#t2
[click back]
#t1
[click back]
(an empty string)
在 Google Chrome 14.0.835.202(在 Ubuntu 和 Windows XP 上测试)上,这是输出。
[load]
fire once
[click T1]
#t1
[click T2]
#t2
[click back]
fire once
#t1
#t2
#t1
[click back]
fire once
#t1
#t2
#t1
(an empty line)
Safari 没有重现这个错误,所以这可能是 V8 错误?谷歌浏览器到底是怎么度过这个错误的两年的?最重要的是如何预防?
谢谢大家。
【问题讨论】:
标签: google-chrome webkit v8