[Javascript] 使用 pageshow 事件 ,submit 返回上一頁後取消特效

  • 5894
  • 0
  • 2025-11-18

寫一個很久的問題但是我一直都沒有去處理的,就是有關於 Holdon.js 

因為我在form post 之前,我都 會呼叫 Holdon.js 來做到 debounce (防止重複 submit )

但是我遇到一個問題,就是如果我在 submit 後,跳轉到下一頁,如果我按下瀏覽器的上一頁

會依然停留在 HoldOn.open() 的畫面..


目前找到最好的做法就是去處理 pageshow 事件,當頁面被載入或從瀏覽器快取(back-forward cache,BFCache)中還原時觸發。

不同於 load,它在「使用者點返回鍵」時也會被觸發。

所以只要在 pageshow 裡面加入  HoldOn.close(); 即可

 

window.addEventListener('pageshow', function (event) {
            
            HoldOn.close();
});

簡單分享一下,解決一下之前專案的技術債。

--

本文原文首發於我的個人部落格:使用 pageshow 事件 ,submit 返回上一頁後取消特效

---

Yesterday I wrote down the code. I bet I could be your hero. I am a mighty little programmer.