html5的popState事件響應的時候,手動調用pushState。應該就可以了。。
廣安網站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網頁設計、網站建設、微信開發(fā)、APP開發(fā)、成都響應式網站建設公司等網站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創(chuàng)新互聯(lián)。
我沒試過,就講個思路。
其實就是,每次監(jiān)聽到后退的事件的時候,我在響應事件里頭,手動調用一次前進(回到原來頁面)。這樣就能實現(xiàn)停留在原來頁面了。
思路二,依然在popState的響應函數(shù)里頭,我覺得,應該有某個方法,可以截斷事件的默認響應行為。。就是截斷(popState接下去的行為,從而讓瀏覽器不后退。)。記得jquery里頭貌似有個stopDefault開頭的一個函數(shù),忘了。
History 對象從 HTML4 開始引入,HTML5 中增加了 pushState, replaceState 兩個方法,和 popstate 事件。下面作一些簡單的介紹。
1. pushState()方法
pushState() 的作用是往歷史記錄的堆棧中壓入一條記錄,該方法有三個參數(shù):
state object —— 一個對象,用于保存狀態(tài)信息,當 popstate 事件被觸發(fā)時,popstate 事件對象的 state 屬性會包含相應的 state object 的拷貝。state object 的容量很?。‵irefox 中強制為 640k),如果需要儲存較大的數(shù)據,建議使用 localStorage 或 sessionStorage。
title —— 即被壓入的歷史記錄的頁面的標題,該屬性暫時被所有瀏覽器忽略,實際開發(fā)時可以填空字符或一個簡短的標題。
url —— 新的歷史記錄的地址,可以是相對路徑或絕對路徑,若為相對路徑則以當前 url 為基址。
2. replaceState()方法
replaceState() 方法與 pushState() 方法類似,參數(shù)與 pushState() 也相同,但 replaceState() 方法會修改當前的歷史記錄而并非創(chuàng)建新的記錄,因此在需要更新當前歷史記錄的 state object 或 URL 時,使用該方法會更加合適。
3. popstate 事件
popstate 事件會在激活的歷史記錄發(fā)生變化(如前進、后退、調用 pushState 或 replaceState 方法)時觸發(fā)在 window 對象上。如上面所描述,如果被激活的歷史記錄由 pushState 創(chuàng)建或是被 replaceState 修改,則 popstate 事件的狀態(tài)屬性將包含相應的 state object 的拷貝,開發(fā)者可以在 popstate 的回調中調用這些之前保存在 state object 中的信息。
值得注意的是,Chrome 會在打開頁面(包括第一次打開頁面)以及頁面刷新時產生 popstate 事件而 Firefox 則不會,這會為開發(fā)帶來一些麻煩,但下面會給出解決方案。
那是因為你播放的音頻是后端動態(tài)生成的二進制文件,而不是源音頻(即源文件播放路徑),audio標簽的currentTime不會生效,使用斷點續(xù)傳就可以解決你這個問題