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): შეცვლის მიმდინარე მდგომარეობას სესიის ისტორიაში.
მაგალითი pushState-თან:
// ახალი მდგომარეობის დამატება ისტორიაში
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 მოვლენა ხორციელდება სესიის ისტორიის ჩანაწერის აქტივაციისას.