關於瀏覽器的history

最近遇到一個很奇特的問題:app上一個按鈕綁定了一個連接,如今須要更換這個連接,可是app不支持更換連接,那麼從前端角度考慮,我採用加載該頁面腳本,而後跳轉到新的頁面,可是這樣作會有一個問題,跳到自信的頁面後點擊返回按鈕會一直跳到新的頁面,致使返回按鈕失效。後來查看資料使用了window.location.replace()方法,這種方法在谷歌瀏覽器是能夠的,可是在app裏面仍是會存在上面的問題。
最後我從window對象的history入手解決了這個問題。前端

 

即history.replaceState();方法,這個方法接受三個參數,第一個是狀態對象,第二個是頁面標題,第三個是頁面連接。具體代碼以下瀏覽器

if (history.replaceState) {
   history.replaceState(null,document.tittle,"http://******");  
   history.go(0);  
} else {
  window.location.replace("http://*****");
}

history.replaceState();發放會替換當前頁面的瀏覽記錄,及頁面標題替換爲:document.tittle,地址欄的連接替換爲「http://****」,至因而不是存在「http://****」則不會去驗證的;history.go(0)作到了頁面刷新,及刷新我想看到的頁面,history.go(1)前進一頁,history.go(-1)後退一頁,這樣,用戶進入了老的頁面可是去自動跳轉到我但願出現的新的頁面,並且瀏覽器的歷史記錄裏面是記錄的新的頁面的地址,完美解決。app

 

參考連接:https://developer.mozilla.org/zh-CN/docs/Web/API/Historyspa

相關文章
相關標籤/搜索