2013-06-14 6 views
5

Ich bin Targeting beide „zurück“ und „Vorwärts“ Schaltflächen zusammen mit diesem JavaScript-Snippet:Ziel Browser zurück und vorwärts Tasten einzeln

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

Wie kann ich unterscheiden zwischen „Zurück“ und „Vorwärts“ Tasten und Ziel ihre Veranstaltungen getrennt?

+2

Eine Möglichkeit, die ich mir vorstellen kann, ist: Wenn Sie 'pushState' hinzufügen, fügen Sie dem Zustandsobjekt eine Zahl hinzu und erhöhen Sie es jedes Mal, wenn Sie' pushState' drücken. Wenn Sie jetzt vorwärts oder rückwärts gehen, können Sie diese Zahl mit dem aktuellen Zustand vergleichen und prüfen, ob diese Zahl größer oder kleiner wird. Nicht sicher, ob das funktioniert, aber es ist eine Idee. –

+0

Interessante Idee, @ RocketHazmat, danke! –

+0

Gern geschehen. Ich weiß nicht, ob es "offizielle" Wege gibt, das zu tun, aber das klingt, als sollte es funktionieren. Ich bin ein wenig beschäftigt, also habe ich keine Zeit, ein Beispiel zu machen :-) –

Antwort

0

Sie müssen die Rück-/Weiterleitung oder den Verlauf nicht verfolgen, wenn Sie sie korrekt implementieren. Jede XML-Datei, die Sie laden, sollte eine eindeutige ID erhalten, ersetzen Sie einfach Schrägstriche durch Unterstriche und denken Sie daran, dass Sie keine Unterstriche für tatsächliche URLs verwenden sollten, stattdessen verwenden Sie Bindestriche. Angenommen, Sie haben kein URL-Schema, das die Verwendung von Windows 8 im Vergleich als nicht-mörderisch erscheinen lässt, suchen Sie einfach nach der angeforderten ID.

können Sie sehen, wie popstate Werke auf meiner Seite ...

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

eine Strg + f Do und den Code anschauen um die Linie gestartet ...

window.onclick = function(e) 

. ..here ...

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

Wenn y ou're verwenden Firebug erweitern die #liquid (wörtlich <body><div id="body"><div id="content"><div id"liquid"> in meinem XHTML).

Wenn Sie verloren gehen lassen Sie mich wissen, und ich werde klären, was der Code tut. Außerdem hilft es enorm, Ihren Code so streng wie möglich zu setzen (XHTML als application/xhtml + xml und Ihr XML-Content sollte als application/xml bereitgestellt werden).

+0

Den Inhalt als 'application/xhtml + xml' zu servieren, ist eine gute Möglichkeit, den IE 8 zu durchbrechen. Auch wenn Ihre Website jemals ausfällt, ist diese Antwort nutzlos. Bitte vermeiden Sie die Verlinkung und fügen Sie hier den Code ein. – Stijn

+0

Danke für die [email protected]! Natürlich haben Sie noch nie von Content-Negotiation gehört. > __> Sie haben auch meine Website mit IE8 oder älter (NOT) klar besucht, um dies zu bestätigen, bevor Sie gedankenlos abstimmen. Figaro stellte eine vage Frage, bekam eine Antwort und akzeptierte das. Offensichtlich beleidigt sie ihre Fähigkeit, vorwärts zu gehen. – John

+0

Dann sollten Sie vollständig sein und das IE 8 Problem erwähnen. Und ich habe dich aus zwei Gründen abgelehnt, nicht einen. Eigentlich werde ich ein Drittel hinzufügen. XHTML wurde zugunsten von HTML 5 aufgegeben. – Stijn

Verwandte Themen