Kom ihåg mig?
Home Menu

Menu


JS-Event för Back-button, finns det?

Ämnesverktyg Visningsalternativ
Oläst 2010-02-05, 17:04 #1
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
Standard JS-Event för Back-button, finns det?

Jag har en site där jag laddar innehåll med AJAX och ändrar hash-värdet i adressfältet när innehållet ändras, på så sätt kan jag ju ladda rätt innehåll om användaren klistrar in en länk.
Jag skulle dock även vilja låta användaren använda "tebaks"-funktionen i webläsaren men problemet där är ju att webläsaren inte ser det som en ny sida om bara hash-värdet ändras. Det finns visserligen ett par JQuery-plugins som löser det här, men hur fungerar de egentligen? Hur löser de problemet med att veta när hash-värdet ändras? Ligger de och kollar x antal gånger per sekund eller finns det något event för tillbaks-knappen? Skulle bara behöva just tillbaks-knappseventet och inte allt annat som dessa JQuery-plugins skickar med.
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-05, 18:36 #2
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Det finns en onhashchange event men stöds bara av Firefox 3.6, IE8 och eventuella nya browsers som implementerade det sen jag kollade upp det :P

Oavsett så är inte stödet i närheten av heltäckande.

I stort sett alla implementationer av historik/bokmärke etc för ajax-applikationer använder, som du antar, en timeout som kollar hash-värdet och triggar funktionen om det förändrats. Det finns några försök till alternativa sätt, men av de jag sett verkar alla sämre rent funktionellt och prestanda-förbättringen extremt minimal.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-05, 19:04 #3
wdb wdb är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2010
Inlägg: 28
wdb wdb är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2010
Inlägg: 28
Kod:
setInterval(function () {
        var hash = document.location.hash.substr(1);
        if (hash != window.last_hash) {
            window.last_hash = hash;
            /* gör något med hash */
        }
    }, 200);
200 millisekunder funkar fint för mig, det märks ingen delay alls och körs långt ifrån för ofta.
wdb är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-02-05, 19:12 #4
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
OK, tack. Ska testa något liknande!
andi är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 03:52.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017