場景:在APP頁面開發中,有一個需求,作一個返回按鈕,實現的功能和瀏覽器的後退按鈕相同。瀏覽器
措施:具體思路以下:安全
1.開始打開頁面時,瀏覽器的history.length爲1,按鈕隱藏;url
2.當history.length>1時,點擊按鈕執行 history.go(-1);spa
3.後退到歷史記錄棧中第一幀時,按鈕隱藏。出於瀏覽器安全性考慮,history中沒有給出屬性判斷其當前頁的位置,因此,在開始打開頁面,處於第一幀時,在當前url中添加參數,按鈕點擊事件觸發時,根據該參數可判斷是不是第一幀的位置。code
解釋:對象
一.history對象:blog
二.向當前url中追加參數事件
var newurl = updateQueryStringParameter(window.location.href, 'sp', '2'); window.history.replaceState({ path: newurl }, '', newurl); function updateQueryStringParameter(uri, key, value) { if(!value) { return uri; } var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i"); var separator = uri.indexOf('?') !== -1 ? "&" : "?"; if (uri.match(re)) { return uri.replace(re, '$1' + key + "=" + value + '$2'); } else { return uri + separator + key + "=" + value; } }