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

        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號
        主站蜘蛛池模板: 久久久WWW免费人成精品| 亚洲热线99精品视频| 亚洲精品456播放| 亚洲精品自产拍在线观看动漫| 亚洲日韩精品一区二区三区无码 | 午夜天堂精品久久久久| 99爱在线视频这里只有精品| 国内精品久久久久影院日本| 亚洲精品无码永久在线观看| 好湿好大硬得深一点动态图91精品福利一区二区| 97久久久精品综合88久久| 人妻AV一区二区三区精品| 亚洲精品一级无码中文字幕| 青娱乐国产精品视频| 国产中文在线亚洲精品官网| 国产成人精品综合久久久| 青青草国产精品| 久久精品国产福利国产秒| 国产精品福利一区二区久久| 国产精品成熟老女人视频| 久久精品中文騷妇女内射| 色欲国产麻豆一精品一AV一免费| 亚洲欧洲精品成人久久曰影片| 亚洲av午夜成人片精品电影| 欧美精品丝袜久久久中文字幕| 国产在线精品国自产拍影院| 国产精品日韩欧美久久综合| 亚洲综合一区二区精品导航 | 国产亚洲欧美精品久久久| 亚洲精品乱码久久久久久按摩| 亚洲AⅤ永久无码精品AA| 国产三级精品三级| 精品久久久久久国产牛牛app| 精品久久人人妻人人做精品| 精品久久久久久无码国产| 久久成人精品| 久久久久九国产精品| 欧美日韩精品一区二区三区不卡 | 久久精品国产精品亚洲人人| 欧美日韩精品系列一区二区三区| 日韩美女18网站久久精品|