フレーム内のページの位置を更新するために 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 をロードすると、ページがロードされるとロード済みアラートが 1 回表示されます。次に、ハッシュの設定ボタンが押されると、URL は変更されますが、読み込まれたアラートのハッシュは再び表示されません。Chrome および一部のバージョンの IE
Microsoft は、Internet Explorer 5.5 のリンク テキストでおそらく同じ問題を報告しています。
onLoad イベントの一部として top.location.hash を設定して使用しているため、イベントをキャプチャして発生させずにスクロールして表示するという Microsoft が推奨するソリューションを使用することはできません。