WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   JS-Event för Back-button, finns det? (https://www.wn.se/forum/showthread.php?t=1040376)

andi 2010-02-05 16:04

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.

Clarence 2010-02-05 17:36

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.

wdb 2010-02-05 18:04

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.

andi 2010-02-05 18:12

OK, tack. Ska testa något liknande!


Alla tider är GMT +2. Klockan är nu 17:02.

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