1. 程式人生 > >PC微信內建瀏覽器,history.go(-1)進入變空白問題

PC微信內建瀏覽器,history.go(-1)進入變空白問題

問題:電腦版微信瀏覽器中,history.length不會因為關閉瀏覽器而消失,所以在執行history.go(-1)時,微信瀏覽器會判定為上一個頁面存在,執行跳轉。但當在微信中點選連結直接進入目標頁面時,實際上當前瀏覽器中是不存在上一個頁面的,導致倒退變成空白。

解決方法1:可以直接使用window.location.href('www.xx.com')來跳轉到指定“頁面”。

缺點:如果上一個頁面的url中是帶著篩選資料的列表頁,那麼就無法返回到之前篩選的狀態

解決方法2:在列表頁(返回鍵指向的頁面)使用

sessionStorage.setItem("read_history", "already_read");

來設定標記,在進入目標頁點選返回時,判定:

if (sessionStorage.getItem("read_history")=="already_read") 

如果有標記,則代表前一個頁面(列表頁)是存在的,執行history.go(-1),反之則return false;停留在當前頁面來防止觸發進入空白頁的BUG。

缺點:sessionStorage的標準是在關閉瀏覽器時,會清除資料(read_history)。然而!pc版微信瀏覽器就是個坑啊!關閉瀏覽器之後sessionStorage居然還在!這樣一來,直接進入目標頁面時,IF判斷仍然會判定為ture,然後又進入空白頁....只有當重啟微信時,sessionStorage資料才會清除。

解決方法3:待補坑