js修改物理返回鍵功能


preventBack: function(theurl){
var pushState = window.history.pushState;
//點擊物理返回鍵時,退出到跳轉定義首頁
if(pushState){
window.history.pushState({a: Math.random()},'', location.href);
window.addEventListener('popstate', function(){
var type = typeof(theurl);
type == 'function' ? theurl() : window.location.href=theurl;
}, !1);
}
}

 

但是得注意一些ios系統下在APP內嵌的H5網頁會出現不明BUG(如鏈接跳轉直接跳了theurl)

 

當前活動歷史項(history entry)改變會觸發popstate事件。調用history.pushState()創建新的歷史項(history entry),或調用history.replaceState()替換新的歷史項(history entry),那么popstate事件的state屬性會包含歷史項(history entry)狀態對象(state object)的拷貝。

需要注意的是調用history.pushState()history.replaceState()不會觸發popstate事件。只有在做出瀏覽器動作時,才會觸發該事件,如用戶點擊瀏覽器的回退按鈕(或者在Javascript代碼中調用history.back()

不同的瀏覽器在加載頁面時處理popstate事件的形式存在差異。頁面加載時Chrome和Safari通常會觸發(emit )popstate事件,但Firefox則不會

部分瀏覽器window.addEventListener('popstate',function(){})不會觸發


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM