Ho un codice (scritto da un altro sviluppatore) che sta caricando la pagina AJAX all'interno di WordPress (ad esempio non ricarica pagina) quando fai clic su un oggetto nav, AJAX si aggiorna l'area del contenuto principale. Il mio problema è che è rotto in IE7 e non ho idea di dove cominciare in termini di debug.Ottieni l'evento di hashchange per funzionare su tutti i browser (incluso IE7)
Le linee di apertura originali erano
var queue = 0;
$('document').ready(function() {
window.addEventListener("hashchange", hashChange, false);
// Define window location variables
var windowHost = window.location.host,
windowHash = window.location.hash,
windowPath = window.location.pathname;
Ma li cambiate per rendere il addEventListener
condizione in base se tale metodo fosse presente o meno. Alcune ricerche mi hanno detto che il metodo non è disponibile nelle versioni precedenti di IE (ad esempio 7 nel mio caso). Inoltre, la console di debug di IE7 lo identificava come un metodo non disponibile, quindi è abbastanza chiaro. Ho riscritto le linee come segue, ma il codice non viene ancora lavorando:
var queue = 0;
$('document').ready(function() {
if(window.addEventListener) {
window.addEventListener("hashchange", hashChange, false);
}
else if (window.attachEvent) {
window.attachEvent("hashchange", hashchange, false);
}
// Define window location variables
var windowHost = window.location.host,
windowHash = window.location.hash,
windowPath = window.location.pathname;
Lo script originale completo può essere visualizzato in questo pastebin: http://pastebin.com/Jc9ySvrb
+1 aha scatto perso l'on! – gideon
Il listener di eventi è collegato correttamente ora, ma non farà nulla in IE7, perché è [non supportato] (http://caniuse.com/hashchange). [IE8 do support] (http://msdn.microsoft.com/en-us/library/cc891506 (v = vs.85) .aspx) comunque l'evento 'hashchange'. Per IE7, devi rilevare hashchanges attraverso 'setInterval'. –
Beh, sicuramente ti sei guadagnato la tua reputazione qui @RobW - grazie mille. Mi hai appena salvato ore, sinceramente non so se valga la pena passare attraverso l'intera cosa di "setInterval". Sembra un enorme mal di testa. – Brian