ПредишенСледващото

DOM прозорец обект осигурява достъп до историята на браузъра чрез обекта история. Тя се простира от полезните свойства и методи, които ви позволяват да се движи напред и назад чрез разказите на потребителите, както и - като се започне с HTML5 - манипулиране на съдържанието на стека на историята.

Туристически истории

Движение напред и назад в историята, използвайки методите на гърба (). напред () и си отиват ().

Пренасочване и заден

За да се придвижите назад, направете:

Тя ще работи по същия начин, както ако потребителят кликне върху бутона за връщане назад в лентата с инструменти на браузъра.

По същия начин, можете да се придвижвате напред (като ако потребителят кликне върху бутона Напред), като този:

Преместването в определен момент от историята

Можете да използвате метод движение (). изтеглянето на определена страница в историята на сесията определя относителната позиция на текущата страница (относителен индекс на текущата страница е равна на 0).

Придвижване назад към предишната страница (еквивалент на резервно ()):

Следваща страница (или се обадите напред ()):

В допълнение, можете да се придвижи напред по 2 страници чрез преминаване 2, и така нататък.

Можете да определите броя на страниците в историята на стека, които търсят за дължина на имота:

Забележка: Internet Explorer подкрепя URL адреса в движение (); това не е стандартизиран и не се поддържа от Gecko.

Добавяне и промяна на записите в историята

В HTML5 са представени методи history.pushState () и history.replaceState (). който Ви позволява да добавяте и променяте записи истории, съответно. Тези методи работят с window.onpopstate на събитието.

Използване history.pushState () може да се променя референт, която ще се използва в заглавието HTTP за препращащ XMLHttpRequest обект. Referrer ще URL на документа, в който през прозореца създал XMLHttpRequest обекта.

pushState () метод

pushState () приема три параметъра: състоянието на заглавната част на обекта (в момента игнорира), както и допълнителен URL адрес. Нека да разгледаме всеки един от тези три параметъра по-подробно:

състоянието на обекта може да бъде всичко, което може да издавам. Тъй като Firefox, която съхраняват за диск на потребителя, той може да бъде възстановен, след като потребителят се рестартира браузъра. Ние сме наложено ограничение на обекта в 640K. Ако преминете по-голям обект в pushState (). метод хвърля изключение. Ако имате нужда от повече пространство, използвайте sessionStorage и / или локално хранилище.

заглавието - Firefox в момента игнорира този параметър, въпреки че може да започне да го използвате и в бъдеще. предаване празен ред ще бъде безопасно за следните приложения на метода. Въпреки че можете да добавите заглавие за държавата, към която отиваш.

URL - URL на новите записи история. Имайте предвид, че браузърът не се опитва да зареди него след pushState на повикване (). въпреки че може да се опита по-късно, например, когато потребителят се рестартира браузъра. URL не трябва да бъде абсолютна, тя може да бъде по отношение на текущата страница. Новият URL адреса трябва да продължи в същия домейн, протокол, порт, или pushState () ще се оплаче. Параметърът не е задължително, ако не е определено ще използваме URL адреса на текущия документ.

Забележка: В гущер 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1), за да гущер 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2), преминал seriarilizovalsya обект в JSON. Като се започне с гущер 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3), обектът се обработва от алгоритъм структуриран клонирането. Той може да изпрати голямо разнообразие от обекти.

В известен смисъл, pushState () повикване е подобен на window.location създаването = "#foo". и в двата случая ще бъде създадена и активирайте друг движенията, свързани с текущия документ. Но pushState () няколко предимства:

Заслужава да се отбележи, че pushState () никога не причинява hashchange събитие. дори ако новия адрес е различен само хашиш.

В XUL-документи тя създава каза XUL-елемент.

В други документи, той създава един елемент с нулев пространство от имена URI.

replaceState () метод

history.replaceState () работи също като history.pushState (). но replaceState () заменя на последния запис на историята, вместо да създавате нова.

replaceState () е особено полезно, когато искате да се актуализира състоянието на даден обект или анамнеза URL на текущия запис в отговор на действията на потребителите.

Забележка: В гущер 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1), за да гущер 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2), преминал seriarilizovalsya обект в JSON. Като се започне с гущер 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3), обектът се обработва от алгоритъм структуриран клонирането. Той може да изпрати голямо разнообразие от обекти.

събитие popstate

Popstate събитие се нарича всеки път, когато историята се променя. Ако записа история е създадена от повикване или pushState replaceState. собственост държавни събития popstate съдържа копие от историята на запис.

Вижте пример за използване window.onpopstate.

Четене на текущото състояние

Когато страницата се зарежда, състоянието на обекта не може да бъде нула. Това може да се случи, ако страницата е създадена състояние на обекта (с помощта на pushState () или replaceState ()), и след това рестартирайте потребител на браузъра. Когато страницата се презарежда, събитие при зареждане се случи. но не popstate. Въпреки това, ако се вгледате в history.state, вие ще получите държавен обект, който би получил, ако настъпили popstate събитие.

Можете да прочетете за текущото състояние на записите на историята обект, без да се чака popstate събития, използващи history.state имот:

За пълен пример за AJAX сайт, вижте: Аякс пример за навигация.

спецификация

Свързани статии

Подкрепете проекта - споделете линка, благодаря!