返回上一頁(yè),我們經(jīng)常用:
history.go(-1)//返回上一頁(yè)(括號(hào)中寫-2代表返回上兩頁(yè)) history.back()//返回上一頁(yè) 返回
在大部分場(chǎng)景下,上面辦法可以滿足我們的交互需求,但是,在有些時(shí)候,上面的代碼就有些心有力而氣不足,因?yàn)楫?dāng)前頁(yè)面的referrer并不總是存在的。
比方說用戶是通過微信分享進(jìn)來(lái)的,直接進(jìn)入了內(nèi)頁(yè),此時(shí)是沒有上一頁(yè)的,返回按鈕再怎么點(diǎn)擊都沒有任何反應(yīng),就會(huì)讓用戶很奇怪,十有八九會(huì)認(rèn)為是出現(xiàn)了bug,則會(huì)讓用戶對(duì)產(chǎn)品的品質(zhì)抱有疑慮,那問題可就大了。
那么現(xiàn)在就用到了document.referrer。
如果發(fā)現(xiàn)瀏覽器沒有上一頁(yè)來(lái)源信息,我們就把返回按鈕的鏈接改成首頁(yè)的鏈接地址,這樣無(wú)論什么時(shí)候,用戶點(diǎn)擊返回按鈕一定是會(huì)有反應(yīng)的,并且返回首頁(yè)從邏輯上講也是合情合理的。而這里判斷是否有沒有來(lái)源信息就是使用這里的document.referrer,當(dāng)瀏覽器得不到上一頁(yè)的來(lái)源信息的時(shí)候,document.referrer的返回值就是空字符串'',于是就有類似下面的代碼:
if (document.referrer === '') { // 沒有來(lái)源頁(yè)面信息的時(shí)候,改成首頁(yè)URL地址 $('.jsBack').attr('href', '/'); }
這樣就能實(shí)現(xiàn)這個(gè)功能了。
關(guān)鍵詞: