Sto usando ajax per aggiornare la posizione di una pagina in una cornice. Ma quando si imposta la posizione dell'hash (su Chrome e alcune versioni di IE (5.5) in particolare, ma occasionalmente su IE7) la pagina viene ricaricata.Impostazione location.hash nei frame
Il seguente codice HTML dimostra il problema.
telaio principale .... frame.html è
<html><head>
<frameset rows="*">
<frame src=sethash.html frameborder=0 scrolling=auto name=somebody>
</frameset>
</head></html>
pagina 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>`
Sulla maggior parte dei browser che caricano il frame.html verrà visualizzato l'avviso caricato una volta quando viene caricata la pagina. Quindi, quando viene premuto il pulsante di hash impostato, l'url verrà modificato, ma l'hash l'avviso caricato non verrà più visualizzato. Su Chrome e alcune versioni di IE
report di Microsoft, eventualmente, lo stesso problema con Internet Explorer 5.5 link text
non posso usare la Microsoft ha suggerito una soluzione, che è quello di catturare l'evento e non sparare, ma basta scorrere in vista, come sto usando impostare top.location.hash come parte dell'evento onLoad.
Questo funziona. Piccola nota: [Chrome mostra uno sfarfallio nel favicon e il pulsante di interruzione/aggiornamento] (http://code.google.com/p/chromium/issues/detail?id=50298), che sembra un po 'brutto. – Blaise