Я использую ajax для обновления местоположения страницы в кадре. Но при настройке местоположения хеша (особенно в Chrome и некоторых версиях IE (5.5), но иногда в IE7) страница перезагружается.Настройка location.hash в фреймах
Следующий 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 будет показывать загруженное предупреждение один раз при загрузке страницы. Затем, когда нажата кнопка set hash, URL будет изменен, но хеш загруженное предупреждение не будет отображаться снова. На хром и некоторых версиях IE
отчет Microsoft, возможно, та же проблема с Internet Explorer 5.5 link text
Я не могу использовать Microsoft предложенное решение, которое должно захватить событие и не стрелять, а просто прокручивать как я использую set the top.location.hash как часть события onLoad.
Это работает. Небольшое примечание: [Chrome показывает мерцание в значке и кнопку остановки/обновления] (http://code.google.com/p/chromium/issues/detail?id=50298), который выглядит как уродливый. – Blaise