2011-08-25 11 views
7

Il mio sito web è disponibile allo http://visualise.ca/ e quando si carica un post facendo clic su una miniatura, verrà caricato il post all'interno della pagina utilizzando ajax. Quando si chiude il post it utilizza questo codice al fine di modificare l'URL Torna http://visualise.ca/ senza ricaricare la pagina:L'aiuto di Window.location.hash è necessario con la sintassi

$("#close").live("click", function(event) { 
    $("#board").fadeOut("slow"); 
    $("#board-wrapper").slideUp("slow"); 
    $("html,body").delay(1000).animate({scrollTop: 0}, 300); 
    window.location.hash = ""; 
    window.history.pushState(null,null,site_url+"/"); 
    return false; 
}); 

ma in IE8 cambia di nuovo a http://visualise.ca/# invece di http://visualise.ca/. C'è un modo per correggere questo e assicurarsi che sia cambiato in http://visualise.ca/?

+2

IE8 non supporta l'API di cronologia html5, prendere in considerazione l'utilizzo di un fallback come https://github.com/balupton/history.js – anderssonola

risposta

1

Ultimamente mi capita di dover scrivere molto ajax. Sto provando la mia implementazione dove navigo tra le pagine e le modal e back and fourth. Fare ottimi progressi.

Dall'inizio dei test ho notato che l'hash di root; UNA VOLTA MODIFICATA alla pagina iniziale (dove tutto è iniziato), perde solo l'hash (#) se era un pulsante BROWSER BACK clic. Se cambio l'hash in "", mostrerà SEMPRE il/# alla fine.

Per quanto IE8 è interessato, io non credo ci sia alcuna soluzione, ma utilizzando l'hack iFrame e, visto che non ho trovato il tempo di testare IE8/iframe incidere ancora, non posso commentare su di esso.

Per la mia soluzione sto usando un mix di hash e puro controllo di comando. Dovrei avere la versione finale completamente testata entro un paio di settimane (pio desiderio).

Inoltre, a chi importa se un hash/sharp viene lasciato alla fine dell'URL. NON HO MAI GUARDATO L'URL una volta che ho colpito un sito web; Guardo solo il contenuto della pagina. DAVVERO: mi ha colpito solo che l'url è importante solo quando voglio copiarlo e incollarlo. Oltre a questo, non lo guardo MAI.

0
window.location = window.location.href.replace(/#.*/, ""); 

questo lavoro per IE.

+1

Ricarica la pagina. Non deve. ;-) – Gab

0
$('#close').click(function(){ 

window.location = "http://visualise.ca/"; 

}); 
+1

Ricarica la pagina. Non buono ;-) – Gab

3

Questo non lo fermerebbe?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
<script> 
    $(document).ready(function() {  
    $(".testPhoto").click(function(event){ 
     event.stopPropagation(); 
     alert("do something"); 
     return false; 
    }); 
}); 
</script> 
<a class="testPhoto" href="#testPhoto" onclick="testPhoto">Test Photo</a> 
1

Niente di meno che IE9 la pagina sarà ricaricata senza l'Hash fine #. Il mio suggerimento è di controllare per IE e rimuovere o nascondere il contenuto. Se vuoi il modo esatto, dovrai evitare alcune stranezze di IE.

if (jQuery.browser.msie && (parseInt(jQuery.browser.version) < 9)) { 
    window.location = 'http://visualise.ca"; 
    document.execCommand('stop'); 
} 
Problemi correlati