2017年10月18日星期三

[JS]瀏覽器返回時清除輸入的內容

在弄一個註冊申請的網頁程式,註冊時如果使用者按上一頁(back button)的話,註冊的資料因為瀏覽器有BFCache的關係會被儲存下來,當用家再按返回鐽返回時,剛才輸入的資料會再次出現沒有被清除。所以現在想在瀏覽器返回時清除輸入的內容。

 BFCache (back-forward cache) 是現在瀏覽器基本上都有的技術,又稱「往返緩存」,可以在使用者在瀏覽器按上/下一頁作後退或前進時,保存當前頁面的數據、DOM和JS的狀態。




剛想著解決問題時是想防止使用者按上一頁(back button)的,但是爬文後發覺就是極不鼓勵的做法。以下是一些參考資料:
 how to stop browser back button using javascript
 How do I disable the "Back" button of a browser?

簡言之我們不能完全禁止使用者按上一頁的權利,也會產生各種問題,先不在這裏在詳細研究(其實是我還沒仔細研究會怎樣 XD)

然後就開始認真研究了一下BFCache,發現可以使用監聽 BFCache的pageshow事件,就是知道使用者按上/下一頁回來是,做想做的事情! 而我想做的事情就是清除之前輸入的內容。

代碼在此,大家可以先分別在兩格輸入一些資料,然後按上一頁再按下一頁,就有發現了!

沒有留言:

發佈留言