前言:想要不刷新頁面同時改變url 能夠用HTML5 window對象的 hashChange 事件。同時介紹兩個相關的api 和 1個事件。html
兩個API:
1.
history.pushState({name:'blog'},'','blog.html');此api會在history歷史狀態棧中添加一條記錄。‘前進’ ‘後退’按鈕可以使用,並觸發popstate事件。
接受3個參數:
第一個:詳盡的狀態信息。提供給popstate 事件的 事件對象的state屬性(event.state );
第二個:新狀態的標題,目前沒有瀏覽器實現,能夠傳空字符串
第三個:相對url。(若是傳入的地址是絕對地址,要求不能跨域,不然瀏覽器報錯)api
2.
與之相反的是另一個api
history.repalceState({name:'blog'},'','blog.html');參數同此pushState 同樣,惟一的區別是api不會在history歷史狀態棧中添加一條記錄,只會從新當前狀態。跨域
一個事件
window 對象的 popstate事件,在按下‘前進’ ‘後退’按鈕並觸發。瀏覽器
小貼士:
在用pushState 創造‘假’url時,請確保 Web服務器上有一個真實存在的url與之對應。 不然刷新頁面時會報 404錯誤。服務器