Gestionarea istoricului browser-ului - interfețe web api, mdn

Obiectul ferestrei DOM oferă acces la istoricul browserului prin obiectul istoric. Extinde proprietățile și metodele utile care vă permit să vă deplasați înainte și înapoi prin istoricul utilizatorilor și, de asemenea, începând cu HTML5, manipularea conținutului istoricului.







O călătorie prin istorie

Navigați înainte și înapoi prin istorie folosind metodele back (). înainte () și go ().

Mutarea înainte și înapoi

Pentru a vă întoarce, faceți:

Acest lucru va acționa la fel ca și în cazul în care utilizatorul a făcut clic pe butonul Înapoi din bara de instrumente a browserului.

În mod similar, puteți să vă deplasați înainte (ca în cazul în care utilizatorul a dat clic pe butonul Înainte), astfel:

Trecerea la un anumit punct al istoriei

Puteți utiliza metoda go (). pentru a încărca o anumită pagină din istoricul sesiunilor, determinată de poziția relativă față de pagina curentă (indicele relativ al paginii curente este 0).

Mergeți înapoi la pagină (echivalentul înapoi ()):

Redirecționați către pagină (sau apelând înainte ()):

În plus, puteți trece în față 2 pagini, trecând 2 și așa mai departe.

Puteți determina numărul de pagini din stack-ul istoric examinând proprietatea lungime:

Notă: Internet Explorer acceptă URL-uri de trecere pentru a merge (); Acest lucru nu este standardizat și nu este acceptat în Gecko.

Adăugarea și editarea intrărilor de istoric

În HTML5, au fost introduse metodele history.pushState () și history.replaceState (). care vă permit să adăugați și să modificați intrări de istoric, respectiv. Aceste metode lucrează împreună cu evenimentul window.onpopstate.

Folosind history.pushState (), poți schimba referrer care va fi folosit în antetul HTTP referrer pentru obiectele XMLHttpRequest. Referrer este adresa URL a documentului în care a fost creat obiectul XMLHttpRequest.

Metoda pushState ()

pushState () are trei parametri: un obiect de stare, un antet (acum ignorat) și un URL opțional. Să analizăm mai detaliat fiecare dintre acești trei parametri:

Un obiect de stare poate fi orice poate fi serializat. Deoarece Firefox îl salvează pe unitatea utilizatorului, acesta poate fi restabilit după ce utilizatorul repornește browserul. Am impus o restricție asupra acestui obiect în 640KB. Dacă treceți un obiect mai mare la pushState (). metoda aruncă o excepție. Dacă aveți nevoie de mai mult spațiu, utilizați sessionStorage și / sau localStorage.







header - Firefox ignoră în prezent această opțiune, deși poate începe să o folosească în viitor. Transmiterea unui șir gol va fi sigură pentru următoarele implementări ale metodei. Deși puteți adăuga un titlu pentru statul la care vă îndreptați.

URL - Adresa URL a noii intrări în istoric. Rețineți că browserul nu încearcă să descarce această adresă URL după ce a sunat la pushState (). deși poate încerca mai târziu, de exemplu, când utilizatorul repornește browserul. Adresa URL nu trebuie să fie absolută, poate fi relativă la pagina curentă. Noua adresă URL ar trebui să meargă la același domeniu, protocol și port, altfel, pushState () va jura. Parametrul este opțional, dacă nu este specificat, se va utiliza adresa URL a documentului curent.

Notă: În Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1) la Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2), a trecut obiect seriarilizovalsya în JSON. Începând cu Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3), obiectul este procesat de algoritmul structurat de clonare. Vă permite să transferați o varietate mai largă de obiecte.

Într-un sens, apelul pushState () este similar cu setarea window.location = "#foo". în ambele cazuri, va fi creată și activată o altă intrare din istoric asociată cu documentul curent. Dar pushState () are mai multe avantaje:

Merită remarcat faptul că pushState () nu cheamă niciodată evenimentul hashchange. chiar dacă noua adresă URL diferă numai prin hash.

În documentele XUL, creează elementul XUL specificat.

În alte documente, acesta creează un element cu un URI din spațiul de nume nul.

Metoda replaceState ()

history.replaceState () funcționează la fel ca history.pushState (). dar replaceState () înlocuiește ultima intrare din istoric în loc să creeze una nouă.

replaceState () este utilă în special atunci când doriți să actualizați obiectul de stare sau adresa URL a înregistrării istorice actuale ca răspuns la acțiunile utilizatorului.

Notă: În Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1) la Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2), a trecut obiect seriarilizovalsya în JSON. Începând cu Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3), obiectul este procesat de algoritmul structurat de clonare. Vă permite să transferați o varietate mai largă de obiecte.

Evenimentul popstat

Un eveniment popstat este declanșat de fiecare dată când se schimbă istoria. Dacă istoricul a fost creat apelând pushState sau replaState. proprietatea statului a evenimentului popstat conține o copie a istoricului.

Vedeți exemplul de utilizare a window.onpopstate.

Citirea stării actuale

Când se încarcă pagina, obiectul de stare nu poate fi nul. Acest lucru se poate întâmpla dacă pagina a instalat un obiect de stare (folosind pushState () sau replaceState ()), iar apoi utilizatorul a reîncărcat browserul. Când pagina se reîncarcă, va apărea un eveniment de încărcare. dar nu poprastat. Cu toate acestea, dacă citiți history.state, veți obține un obiect de stat care s-ar obține în cazul apariției evenimentului popstat.

Puteți citi obiectul de stare din istoricul istoric actual, fără a aștepta evenimentul popstat folosind proprietatea history.state:

Pentru un exemplu complet al unui site AJAX, consultați: Exemplul de navigare Ajax.

specificație







Articole similare

Trimiteți-le prietenilor: