1.HTML5 History對象html
支持使用pushState()方法修改地址欄地址,而不刷新頁面。瀏覽器
popstate事件app
當history實體被改變時,popstate事件將會發生。調用pushState()方法或者replaceState()方法是觸發,當用戶點擊瀏覽器返回按鈕時也會觸發。post
事件註冊實例:url
window.addEventListener('popstate', function (event) { console.info(event); console.info(event.state); console.info(event.state.id); });
2.根據這個事件,若是在觸發是從新添加當前頁面狀態,這樣的話用戶經過返回按鈕就沒法離開這個頁面了。spa
從而實現返回按鈕被鎖定的狀態code
<div id="number"></div> <script> pushHistory(); var number=0; window.addEventListener("popstate", function (e) { // alert("我監聽到了瀏覽器的返回按鈕事件啦"); //根據本身的需求實現本身的功能 number++; var p=document.createElement('p'); p.innerHTML=number; document.getElementById('number').appendChild(p); pushHistory(); //注,此處調用,能夠用戶一直停留着這個頁面 }, false); function pushHistory() { var state = { title: "title", url: "#" }; window.history.pushState(state, "title", "#"); } </script>
更多:htm
HTML5 History對象,Javascript修改地址欄而不刷新頁面對象