2013-06-14 9 views
5

sto prendendo di mira i due tasti "indietro" e "avanti" insieme a questo snippet JavaScript:browser di destinazione indietro e pulsanti avanti singolarmente

window.addEventListener("popstate", function(event) { 
    // do something cool 
} 

Come posso distinguere tra i pulsanti "avanti" "indietro" e e bersaglio i loro eventi separatamente?

+2

Un modo in cui posso pensare è: quando si 'pushState' si aggiunge un numero all'oggetto stato e lo si incrementa ogni volta che si' pushState'. Ora, quando vai avanti o indietro, puoi confrontare quel numero con lo stato attuale e controllare se quel numero sta diventando più grande o più piccolo. Non sono sicuro se questo funzionerà, ma è un'idea. –

+0

Idea interessante, @RocketHazmat, grazie! –

+0

Prego. Non so se ci sono modi "ufficiali" per farlo, ma sembra che dovrebbe funzionare. Sono un po 'occupato, quindi non ho il tempo di tirar fuori un esempio :-) –

risposta

0

Non è necessario eseguire il rintracciamento/inoltro o cronologia se la si implementa correttamente. Ad ogni file XML che viene caricato deve essere assegnato un ID univoco, sostituire semplicemente le barre in avanti con caratteri di sottolineatura e ricordare che non si devono utilizzare caratteri di sottolineatura per gli URL effettivi, ma utilizzare i trattini. Presumendo che non si dispone di uno schema di URL che renderebbe l'utilizzo di Windows 8 sembra non-omicida per confronto, è sufficiente verificare l'ID richiesto.

si può vedere come funziona sul mio sito ... popstate

http://www.jabcreations.com/blog/

fare un Ctrl + F e guardare il codice che inizia intorno alla linea ...

window.onclick = function(e) 

. ..here ...

http://www.jabcreations.com/scripts/index.js

Se y o stai usando Firebug espandi il #liquid (letteralmente <body><div id="body"><div id="content"><div id"liquid"> nel mio XHTML).

Se ti perdi, fammi sapere e chiarirò cosa sta facendo il codice. Inoltre aiuta moltissimo a impostare il tuo codice il più rigoroso possibile (XHTML come application/xhtml + xml e il tuo contenuto XML dovrebbe essere servito come application/xml).

+0

Fornire contenuto come 'application/xhtml + xml' è un buon modo per spezzare IE 8. Inoltre, se il tuo sito va mai giù, questa risposta è inutile. Si prega di evitare il collegamento e includere il codice qui invece. – Stijn

+0

Grazie per il voto a favore @Stijn! Chiaramente non hai mai sentito parlare di negoziazione dei contenuti. > __> Hai anche VISUALIZZATO CHIARAMENTE il mio sito utilizzando IE8 o precedente (NOT) per confermare ciò prima del downless voting. Figaro ha fatto una domanda vaga, ha ottenuto una risposta e ha accettato che, chiaramente, la loro capacità di andare avanti ti offende. – John

+0

Quindi dovresti essere completo e menzionare il problema di IE 8. E ti ho downvoted per due ragioni, non uno. In realtà aggiungerò un terzo. XHTML è stato abbandonato a favore di HTML 5. – Stijn

Problemi correlati