如何監聽Android手機物理返回鍵
阿新 • • 發佈:2019-01-07
概述
window.onpopstate
是popstate
事件在window物件上的事件控制代碼.
每當處於啟用狀態的歷史記錄條目發生變化時,popstate
事件就會在對應window
物件上觸發.
如果當前處於啟用狀態的歷史記錄條目是由
history.pushState()
方法建立,或者由history.replaceState()方法修改過
的,
則popstate事件物件的
state
屬性包含了這個歷史記錄條目的state物件的一個拷貝.
呼叫history.pushState()
或者history.replaceState()
不會觸發popstate事件. popstate
事件只會在瀏覽器某些行為下觸發,
比如點選後退、前進按鈕(或者在JavaScript中呼叫history.back()、history.forward()、history.go()
當網頁載入時,各瀏覽器對popstate
事件是否觸發有不同的表現,Chrome 和 Safari會觸發popstate
事件,
而Firefox不會.
語法
window.onpopstate = funcRef;
funcRef
是個函式名.
popstate事件
假如當前網頁地址為http://example.com/example.html,則執行下述程式碼後:
window.onpopstate = function(event) {
alert("location: " + document.location + ", state: " + JSON.stringify (event.state));
};
//繫結事件處理函式.
history.pushState({page: 1}, "title 1", "?page=1"); //新增並激活一個歷史記錄條目 http://example.com/example.html?page=1,條目索引為1
history.pushState({page: 2}, "title 2", "?page=2"); //新增並激活一個歷史記錄條目 http://example.com/example.html?page=2,條目索引為2
history.replaceState({page: 3}, "title 3", "?page=3" ); //修改當前啟用的歷史記錄條目 http://ex..?page=2 變為 http://ex..?page=3,條目索引為3
history.back(); // 彈出 "location: http://example.com/example.html?page=1, state: {"page":1}"
history.back(); // 彈出 "location: http://example.com/example.html, state: null
history.go(2); // 彈出 "location: http://example.com/example.html?page=3, state: {"page":3}
即便進入了那些非pushState和replaceState方法作用過的(比如http://example.com/example.html)沒有state物件關聯的那些網頁, popstate
事件也仍然會被觸發.