Junior
Ինչպես կառավարել բրաուզերի պատմությունը JavaScript-ում՝ առաջ և հետ շարժվելով?
sobes.tech AI
Պատասխան AI-ից
history օբյեկտը տրամադրում է մուտք դեպի բրաուզերի սեսիայի պատմություն։ Հիմնական մեթոդները կառավարման համար են՝
history.back(): հետ է գնում պատմության մեջ մեկ էջով։history.forward(): առաջ է շարժվում պատմության մեջ մեկ էջով։history.go(delta): շարժվում է նշված քանակությամբ քայլերով պատմության մեջ (deltaկարող է լինել բացասական՝ հետ գնալու համար):
Օգտագործման օրինակ՝
// Վերադառնալ նախորդ էջ
history.back();
// Գնալ հաջորդ էջ
history.forward();
// Վերադառնալ երկու էջով
history.go(-2);
// Գնալ երեք էջ առաջ
history.go(3);
Նաեւ, history օբյեկտը թույլ է տալիս կառավարել պատմության վիճակը առանց էջը վերաբեռնաբեռնելու, օգտագործելով pushState եւ replaceState մեթոդները:
history.pushState(state, title, url): ավելացնում է նոր վիճակ պատմության մեջ:state: վիճակի օբյեկտ, որը կապված է պատմության գրառման հետ։title: էջի վերնագիր (շատ բրաուզերներ այն անտեսում են)։url: URL, որը կապված է գրառման հետ։
history.replaceState(state, title, url): փոխարինում է ընթացիկ վիճակը պատմության մեջ:
Օրինակ՝
// Նոր վիճակ ավելացնել
history.pushState({ page: 1 }, "Էջ 1", "/page1");
// Գործողություններ էջում առանց ամբողջական վերաբեռնաբեռնելու
// Երբ օգտվողը սեղմում է "վերադառնալ" կոճակը, տեղի է ունենում popstate իրադարձությունը
window.addEventListener('popstate', function(event) {
console.log('Վիճակը փոխվել է:', event.state); // { page: 1 }
// Թարմացնել էջի բովանդակությունը ըստ վիճակի
});
Օրինակ՝replaceState-ի հետ՝
// Փոխարինել ընթացիկ վիճակը
history.replaceState({ tab: 'active' }, "Ակտիվ թերթիկ", "/active-tab");
popstate իրադարձությունը տեղի է ունենում, երբ ակտիվացվում է սեսիայի պատմության գրառումը։