Я использую ajax для обновления местоположения страницы во фрейме. Но при установке местоположения хеша (в частности, в Chrome и некоторых версиях IE (5.5), но иногда в IE7) страница перезагружается.
Следующий html демонстрирует проблему.
основной кадр .... frame.html это
<html><head>
<frameset rows="*">
<frame src=sethash.html frameborder=0 scrolling=auto name=somebody>
</frameset>
</head></html>
страница sethash.html:
<html><head>
<script language=JavaScript>
var Count = 0;
function sethash()
{
top.document.location.hash = "hash" + Count;
Count++;
}
</script>
</head>
<body onload="alert('loaded')">
<h1>Hello</h1>
<input type='button' onClick='sethash()' value='Set Hash'>
</body>
</html>`
В большинстве браузеров, загружающих frame.html, будет отображаться загруженное предупреждение один раз при загрузке страницы. Затем, когда нажата кнопка установки хеша, URL будет изменен, но хеш загруженного оповещения больше не будет отображаться. На хроме и некоторых версиях I.E
Microsoft сообщает, возможно, та же проблема с Internet Explorer 5.5 текст ссылки
Я не могу использовать предложенное Microsoft решение, которое состоит в том, чтобы захватить событие и не запускать его, а просто прокрутить в просмотр, поскольку я использую set top.location.hash как часть события onLoad.