Ich verwende Ajax, um den Speicherort einer Seite in einem Frame zu aktualisieren. Beim Festlegen des Speicherorts des Hashes (in Chrome und einigen Versionen von IE (5.5) speziell, aber gelegentlich in IE7) wird die Seite neu geladen.Einstellen von location.hash in Frames
Das folgende HTML demonstriert das Problem.
der Hauptrahmen .... frame.html ist
<html><head>
<frameset rows="*">
<frame src=sethash.html frameborder=0 scrolling=auto name=somebody>
</frameset>
</head></html>
die sethash.html Seite.
<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>`
Bei den meisten Browsern lädt die frame.html den geladenen Alarm sobald die Seite geladen ist. Wenn dann der gesetzte Hash-Knopf gedrückt wird, wird die URL geändert, aber der Hash-Wert des geladenen Alarms wird nicht mehr angezeigt. Auf Chrom und einige Versionen von IE
Microsoft Bericht möglicherweise das gleiche Problem mit Internet Explorer 5.5 link text
ich nicht dem Microsoft vorgeschlagene Lösung verwenden, das das Ereignis zu erfassen und nicht schießen, aber nur blättern in Sicht, wie ich benutze, legen Sie die top.location.hash als Teil des onLoad-Ereignisses fest.
Das funktioniert. Kleiner Hinweis: [Chrome zeigt ein Flackern im Favicon und Stop/Refresh-Taste] (http://code.google.com/p/chromium/issues/detail?id=50298), die etwas hässlich aussieht. – Blaise