站長資訊網
        最全最豐富的資訊網站

        ajax為什么不能后退

        因為ajax與瀏覽器的history.back()與forward()不友好,不能前進與后退,其解決辦法就是根據當前URL地址中的查詢內容讓對應的菜單執行Ajax載入即可。

        ajax為什么不能后退

        本文操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

        ajax為什么不能后退?解決ajax無法后退問題實例

        都知道ajax有一個明顯的缺點就是與瀏覽器的history.back()與forward()不友好,不能前進與后退。

        實例地址:解決ajax無法后退問題實例

        解決方法:

        ajax為什么不能后退ajax為什么不能后退

        window.history實例

        在console里面打印出window.history的實例,可以查看相關對象的原型。

        length:length為瀏覽記錄隊列長度,由于這個頁面是新打開的,隊列中只有當前頁面鏈接相關信息,其值為1

        state:

        pushState:就是window.history.pushState();

        replaceState:就是window.replaceState();

        用法:

        window.history.pushState({status: 0} ,'' ,'?data=1');

        ajax為什么不能后退ajax為什么不能后退

        改變后的瀏覽器地址

        這里需要注意的是,如果實在本地運行的話,在ie和火狐上都是可以完美運行的,但是現在新版的谷歌會報錯,這是因為谷歌的安全機制問題。如果代碼放在服務器上的話應該是沒有這個錯誤的。

        ajax為什么不能后退ajax為什么不能后退

        所以這里的解題思路:

        1.每次手動點擊左側的菜單,我將Ajax地址的查詢內容(?后面的)附在demo HTML頁面地址后面,使用history.pushState塞到瀏覽器歷史中。

        2.瀏覽器的前進與后退,會觸發window.onpopstate事件,通過綁定popstate事件,就可以根據當前URL地址中的查詢內容讓對應的菜單執行Ajax載入,實現Ajax的前進與后退效果。

        3.頁面首次載入的時候,如果沒有查詢地址、或查詢地址不匹配,則使用第一個菜單的Ajax地址的查詢內容,并使用history.replaceState更改當前的瀏覽器歷史,然后觸發Ajax操作。

        推薦學習:《ajax視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲国产一二三精品无码| 精品久久久久久亚洲| 欧美亚洲国产精品第一页| 国产高清在线精品二区一| 国产成人精品高清在线观看93| 久久99热只有频精品8| 国产亚洲欧美精品永久| 国产69精品久久久久777| 久久国产精品-久久精品| 亚洲欧洲精品无码AV| 国产线视频精品免费观看视频| 亚洲午夜精品久久久久久app| 久久亚洲中文字幕精品有坂深雪| 国产综合精品一区二区三区| 精品无码一级毛片免费视频观看 | 久久久久99精品成人片欧美| 久久亚洲精品无码播放| 亚洲码国产精品高潮在线| 国自产精品手机在线观看视频| 久久精品国产亚洲一区二区| 国产l精品国产亚洲区在线观看| 亚洲av无码乱码国产精品fc2| 国产成人精品日本亚洲18图| 无码精品一区二区三区在线| 中文字幕精品久久| 野狼第一精品社区| 久久亚洲欧美日本精品| 2020亚洲男人天堂精品| 国产精品拍天天在线| 久久精品国产第一区二区| 国产精品99久久不卡| 中文成人无码精品久久久不卡| 精品精品国产高清a毛片| 丁香色婷婷国产精品视频| 亚洲精品蜜桃久久久久久| 人妻少妇看A偷人无码精品| 91久久精品91久久性色| 国产产无码乱码精品久久鸭| 97久久精品国产精品青草| 国产精品九九九久久九九| 久久久国产精品福利免费|