Это сводит меня с ума, это 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 пережил два года с этой ошибкой?и самое главное, как мне предотвратить это?
Спасибо всем.