PushState是HTML5中新增的History API之一,可以在不刷新頁(yè)面的情況下改變URL。
使用PushState可以通過(guò)以下步驟來(lái)改變URL:
獲取當(dāng)前頁(yè)面的URL:可以使用window.location.href來(lái)獲取當(dāng)前頁(yè)面的URL。
使用PushState方法改變URL:可以使用history.pushState方法來(lái)改變URL,該方法接受三個(gè)參數(shù),分別是state對(duì)象(表示新的狀態(tài))、標(biāo)題(目前大多瀏覽器忽略此參數(shù))、URL(表示新的URL)。例如:
history.pushState({page: 1}, "Title", "newpage.html");
需要注意的是,雖然PushState可以改變URL但不刷新頁(yè)面,但是如果用戶手動(dòng)刷新頁(yè)面或者通過(guò)瀏覽器的前進(jìn)、后退按鈕導(dǎo)航,頁(yè)面還是會(huì)刷新。因此,在使用PushState時(shí),需要考慮如何處理頁(yè)面狀態(tài)的保持和恢復(fù)。