判斷 browser back and forward buttons
G大問了個問題:「如何判斷瀏覽器上的上一頁、下一頁,當如果是 hash 換頁的話」
e.g. domain.com.tw#page1 (page2, 3...)
一般頁面有重整的,都使用 history.go(-1);
,但當是 hash 的話呢? 頁面沒有重整的情況。
- hashchange event:
window.addEventListener("hashchange", function () {});
但是只用這個 event 判斷是不夠的,當我在 page 內也有button 可以控制 hash 的話,這樣的條件是不夠的,不管你按上一頁、下一頁或從頁面上按,都會觸發。
所以需再加上 window.history.length ,每次觸發事件判斷 history length 數量有無變更,如果沒有的話表示的確是按瀏覽器上的上下頁按鍵。