Problemi di navigazione con tag hash ie6 e ie7
-
28-10-2019 - |
Domanda
Ho un sito Web che utilizza il Plug -in addizionale jQuery da asual per la navigazione.
Il problema che sto riscontrando è che usando IE6 e IE7, quando l'utente utilizza i pulsanti back/in avanti, il sito Web finisce in una pagina inaspettata.
Ecco una versione ridotta di quello che sto facendo in questo momento.
$.address.init(function(event) {
defaultPage = "1";
}).change(function(event) {
$("#content").html('<div><img src="/images/activity indicator.gif"></div>')
$("#content").load("./pages/"+names+".html", function(){
var names = $.map(event.pathNames, function(n) {
return n.substr(0, 1).toUpperCase() + n.substr(1);
}).concat(event.parameters.id ? event.parameters.id.split('.') : []);
pageScripts[names]();
});
});
Se sono a pagina /
, vai a #/1
, vai a #/2
, quindi GOTO PAGINE #/3
, Sono a pagina #/3, nessun problema con tutto ciò. Quando colpisco "Back" in ie6 o ie7 (Chrome, ff, ie8, ie9 funzionano tutti bene) quando a pagina #/3
, Vengo mandato fino a Page /
. Facendo clic in avanti, spostami su Page /#3
.
Salta sulla storia dalle schede hash.
in ogni caso, il Esempio dal sito Web Funziona bene con ie6/ie7. Non riesco a trovare le differenze funzionali tra ciò che ho fatto e ciò che sta facendo.
Soluzione
È necessario utilizzare l'attributo rel.
<a href="/deep-link" rel="address:/deep-link">Deep link</a>
IE6/IE7 sembrano rispettare l'uso di questo per quella funzionalità.
Questo ha effetti collaterali (ad esempio, ogni collegamento con Rel ha un gestore di eventi su di esso ora), che può o meno influire sulla tua implementazione specifica.
Nota: accetterò una risposta con più cure e spiegazioni messe in esso se vuoi davvero rispondere a questa domanda.