Känna av framåt/bakåt i browsern?

Permalänk
Medlem

Känna av framåt/bakåt i browsern?

Tjena,

Går det att på något sätt veta om användaren klickat på "back" eller "forward" i browsern? Jag skulle vilja ha olika animationer på beroende på hur man kommer in på sidan.

Har löst det med att jag har en egen "soft" tillbaka-knapp på sidan och det fungerar ju bra (hela sajten är en ajax-historia med ett History-javascriptplugin) men de hårdkodade knapparna i webläsaren ställer till det lite för mig. De flesta använder trots allt inte softkodade bakåt-knappar...

Någon som kan komma på någon lösning? Hur dålig eller krånglig som helst går bra!

Visa signatur
Permalänk
Medlem
Skrivet av anarkizt:

Tjena,

Går det att på något sätt veta om användaren klickat på "back" eller "forward" i browsern? Jag skulle vilja ha olika animationer på beroende på hur man kommer in på sidan.

Har löst det med att jag har en egen "soft" tillbaka-knapp på sidan och det fungerar ju bra (hela sajten är en ajax-historia med ett History-javascriptplugin) men de hårdkodade knapparna i webläsaren ställer till det lite för mig. De flesta använder trots allt inte softkodade bakåt-knappar...

Någon som kan komma på någon lösning? Hur dålig eller krånglig som helst går bra!

Jag har aldrig behövt göra någon kod gällandes detta, så jag kan inte svara säkert. Jag tror att det är detta som gäller: https://developer.mozilla.org/en/DOM/window.onbeforeunload
Jag tror att det är den lösningen som e-bankerna använder och andra diverse sidor (exempelvis quakelive).

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

Tack för tipset! Tyvärr verkar bara onbeforeunload trigga då man antingen helt lämnar sidan eller uppdaterar. Den kastar också alltid upp en dialogruta som frågar om man vill lämna sidan eller inte, inte riktigt vad jag vill åstadkomma.

Min "history" ser ut på följande sätt:

http://minsida.com/index.php?page=1
http://minsida.com/index.php?page=2
http://minsida.com/index.php?page=3

Att bara gå back/forward mellan 1 och 3 triggar ej onbeforeunload.

Visa signatur
Permalänk
Medlem

Hej,

Jag har flera ajax-drivande sidor och sätter alltid en annan hash-kod beroende på vilken länk man besöker t.ex det id på den sektion som är aktuellt. (Om du har den databasdriven). Ex: www.minsida.com/#hashid=1234

Sedan har jag en javascript som kollar var hela tiden (1 ggr /50ms) om det hashid som jag är inne på motsvarar vad som just nu står i URLen. Om inte (Användaren har klickat bakåt eller framåt) så uppdaterar jag allt som behövs med ajax beroende på vad som just nu står i urlen. (Samt ändrar det aktuella hashid såklart, så den inte uppdaterar hela tiden.)

Hoppas du förstår vad jag menar.

Visa signatur

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." - Brian W. Kernighan

Permalänk
Avstängd
Permalänk

Du kan ju testa med denna:

var historyArray = window.history; var lastHistory = historyArray.length - 1; var result = historyArray[lastHistory];

Fast... ja... du måste ju haxxa användarens dator då >.<

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Medlem
Skrivet av morphman86:

Du kan ju testa med denna:

var historyArray = window.history; var lastHistory = historyArray.length - 1; var result = historyArray[lastHistory];

Fast... ja... du måste ju haxxa användarens dator då >.<

Problemet är ju att history inte ändras då han uppdaterar informationen på sidan med Ajax.

Visa signatur

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." - Brian W. Kernighan

Permalänk
Testpilot

Kan history API i HTML5 vara nått? är inte helt säker på vad som efterfrågas.
http://caniuse.com/history
http://html5demos.com/history

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]

Permalänk

Har inte använt det själv men https://github.com/cowboy/jquery-hashchange kanske skulle kunna fungera eller https://github.com/balupton/history.js .

Visa signatur

The statement below is true.
The statement above is false.

Permalänk
Medlem

Ja, det verkar råda oklarheter om vad jag efterfrågat!

Problemet är INTE att gå framåt eller bakåt med hjälp av browserns knappar, det fungerar med hjälp av ett Historyplugin för JQuery som jag använder ( https://github.com/balupton/history.js/tree/master/scripts/bu... ). Djuplänkning in på olika sidor fungerar också, crosslänkning mellan html4 och html5-browsar fungerar också, asbra!

Detta är själva problemet:
När användaren går från en sida till en annan på sajten så "slajdas" allt innehåll åt vänster och det nya innehållet ploppar upp lite snyggt. När man sedan går tillbaka (antingen med softknapp eller med browserns "back") så vill jag att innehållet istället ska slajda åt höger innan den nya sidan ploppar fram.

Detta kan jag lösa på softknappen (min egen custom-bakåtknapp som ligger på sidan) genom att bara skicka med &back=true i URLen. MEN, jag kan inte göra detta för browserns knapp eftersom den bara går -1 i historiken. Så jag behöver något annat sätt att lösa det på.

Visa signatur
Permalänk

Nu kommer jag bara svamla ihop lite.
Ta en räknare som du både sparar med lscache/cookie samt skickar med som en hash variabel.

1) Anv befinner sig på din sida räknaren är kanske 12 *just nu* 12 är sparad i cache/cookie och finns i urlen #!12
2) Du fångar cklick-event på dina interna hrefs eller modifierar dessa i förhand så de innehåller räknare + 1 (#13)
3) Anv. klickar en länk, när dokumentet har laddats färdigt läser du in #13 från urlen
4a) Du jämför den sparade räknaren (= 12) med urlräknaren (= 13) => användaren har alltså gått frammåt => framåt amination, spara 13 i cache/cookie
4b) Anv. går bakåt med bakåtpil i webbläsaren urlen kommer då innehålla #11 jämför med det cachade som är 12 => du vet att användaren har gått bakåt => bakåt animation, spara 11

Kolla in https://github.com/cowboy/jquery-hashchange och https://github.com/pamelafox/lscache

Din egna tillbakalänk kan såklart inte hanteras på samma sätt som de andra interna länkar.

*Kanske* fungerar...

Visa signatur

The statement below is true.
The statement above is false.

Permalänk
Medlem

Ja men det låter ju inte så dumt ministerkrister! Tack för tipset. Jag kan iaf inte se varför det INTE skulle fungera

Visa signatur