<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        ajax后退解決方案

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:52:27
        文檔

        ajax后退解決方案

        ajax后退解決方案:一、使用iframe,通過document.write產(chǎn)生歷史 代碼如下:<!DOCTYPE html> <html> <head> <meta charset=utf-8/> <title>0</title> </head> <body>
        推薦度:
        導(dǎo)讀ajax后退解決方案:一、使用iframe,通過document.write產(chǎn)生歷史 代碼如下:<!DOCTYPE html> <html> <head> <meta charset=utf-8/> <title>0</title> </head> <body>

        一、使用iframe,通過document.write產(chǎn)生歷史
        代碼如下:

        <!DOCTYPE html>
        <html>
        <head>
        <meta charset="utf-8"/>
        <title>0</title>
        </head>
        <body>
        <input type="button" value="加1" onclick="add()" />
        <div id="info" style="border:red 1px solid;width:200px;padding:10px;margin:5px;">0</div>
        </body>
        </html>
        <script src="history-0.1.js"></script>
        <script>
        var info = document.getElementById('info');
        var i = 1;
        function add() {
        info.innerHTML = i;
        document.title = i;
        var data = {
        param : i,
        func : func
        };
        History.push(data);
        i++;
        }
        History.push({param:0, func: func});
        function func(i) {
        info.innerHTML = i;
        document.title = i;
        }
        </script>

        點(diǎn)擊按鈕后更新頁(yè)面DOM(模擬ajax提交),會(huì)發(fā)現(xiàn)瀏覽器后退按鈕可用了。點(diǎn)擊后退,可返回到前一個(gè)狀態(tài)。
        這種方式缺點(diǎn)是只支持IE和Firefox。
        ajax后退解決方案(二)
        二、使用iframe,通過修改iframe.src產(chǎn)生歷史
        代碼如下:

        <!DOCTYPE html>
        <html>
        <head>
        <meta charset="utf-8" />
        <title>0</title>
        </head>
        <body>
        <input type="button" value="加1" onclick="add()" />
        <div id="info" style="border:red 1px solid;width:200px;padding:10px;margin:5px;">0</div>
        </body>
        </html>
        <script src="history-0.2.js"></script>
        <script>
        var info = document.getElementById('info');
        var i = 1;
        function add() {
        info.innerHTML = i;
        document.title = i;
        var data = {
        param : i,
        func : func
        };
        History.push(data);
        i++;
        }
        History.push({param:0, func: func});
        function func(i) {
        info.innerHTML = i;
        document.title = i;
        }
        </script>

        較上一篇多了個(gè)blank.html,是一個(gè)空html架子,沒有JS邏輯代碼,如下
        代碼如下:

        <!DOCTYPE HTML>
        <html>
        <head>
        <title>blank.html</title>
        </head>
        <body>
        </body>
        </html>

        每次ajax操作會(huì)往iframe.src的問號(hào)后附加一個(gè)數(shù)字以記錄歷史。點(diǎn)擊后退按鈕,iframe的onload事件中獲取iframe的url,根據(jù)問號(hào)后的數(shù)字去取記錄。
        所有瀏覽器均支持該方式。缺點(diǎn)是如果主頁(yè)面中存在其它iframe,且修改了其src。歷史管理會(huì)混亂。
        三、使用iframe,通過修改iframe.src產(chǎn)生歷史,回調(diào)寫在iframe對(duì)應(yīng)的html頁(yè)面中
        代碼如下:

        <!DOCTYPE html>
        <html>
        <head>
        <meta charset="utf-8" />
        <title>0</title>
        </head>
        <body>
        <input type="button" value="加1" onclick="add()" />
        <div id="info" style="border:red 1px solid;width:200px;padding:10px;">0</div>
        </body>
        </html>
        <script src="history-0.3.js"></script>
        <script>
        var info = document.getElementById('info');
        var i = 1;
        function add() {
        var data = {
        param : i,
        func : func
        };
        History.push(data);
        i++;
        }
        History.push({param:0, func: func});
        function func(i) {
        info.innerHTML = i;
        document.title = i;
        }
        </script>

        與方案2相同也是使用iframe.src來產(chǎn)生歷史,也需要一個(gè)單獨(dú)的html頁(yè)面(iframe)。不同的是回調(diào)邏輯不是寫在iframe.onload中,而直接寫在html頁(yè)面中(上一篇?jiǎng)t是空的html架子)。blank.html如下
        代碼如下:

        <!DOCTYPE HTML>
        <html>
        <head>
        <title>blank.html</title>
        </head>
        <body>
        <script>
        var url= location.href;
        if(url.indexOf('?')>-1) {
        var idx = url.substr(url.indexOf('?')+1);
        parent.History.get(idx);
        }
        </script>
        </body>
        </html>

        和方案2一樣所有瀏覽器均支持。
        四、通過修改location.hash產(chǎn)生歷史,hashchange事件處理后退
        代碼如下:

        <!DOCTYPE html>
        <html>
        <head>
        <meta charset="utf-8" />
        <title>0</title>
        </head>
        <body>
        <input type="button" value="加1" onclick="add()" />
        <div id="info" style="border:red 1px solid;width:200px;padding:10px;">0</div>
        </body>
        </html>
        <script src="history-0.4.js"></script>
        <script>
        var info = document.getElementById('info');
        var i = 1;
        function add() {
        var data = {
        param : i,
        func : func
        };
        History.push(data);
        i++;
        }
        History.push({param:0, func: func});
        function func(i) {
        info.innerHTML = i;
        document.title = i;
        }
        </script>

        每次ajax操作去改變location.hash的值,每次修改后地址欄均會(huì)有所體現(xiàn)。在window.onhashchange中監(jiān)聽該事件。通過hash的值取對(duì)應(yīng)的歷史。
        較iframe的好處是可以復(fù)制地址欄的url直接進(jìn)入該歷史記錄,缺點(diǎn)是IE6/7不支持。
        文中代碼打包下載

        相關(guān):

        http://msdn.microsoft.com/en-us/library/cc288209(v=vs.85).aspx

        https://developer.mozilla.org/en/DOM/window.onhashchange

        http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#event-hashchange

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        ajax后退解決方案

        ajax后退解決方案:一、使用iframe,通過document.write產(chǎn)生歷史 代碼如下:<!DOCTYPE html> <html> <head> <meta charset=utf-8/> <title>0</title> </head> <body>
        推薦度:
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲va在线va天堂va不卡下载 | 国产亚洲综合一区柠檬导航| 亚洲另类自拍丝袜第五页| 免费看污成人午夜网站| 亚洲国产电影在线观看| 69式国产真人免费视频| 亚洲一区在线视频观看| 影音先锋在线免费观看| 国产精品亚洲专区无码WEB| 国产无遮挡吃胸膜奶免费看 | 亚洲人成亚洲人成在线观看 | 黄色毛片视频免费| 国产免费人成在线视频| 校园亚洲春色另类小说合集| 四虎永久免费地址在线网站| 三级片免费观看久久| 亚洲色中文字幕无码AV| 久久久精品免费视频| 亚洲人成毛片线播放| 国产成人免费片在线观看| g0g0人体全免费高清大胆视频| 亚洲色成人网站WWW永久| 亚在线观看免费视频入口| 亚洲人成777在线播放| 午夜一区二区免费视频| 亚洲阿v天堂在线2017免费| 少妇中文字幕乱码亚洲影视| 成年人免费网站在线观看| 亚洲国产精品国自产电影| 一个人看的免费观看日本视频www| 黄瓜视频高清在线看免费下载| 78成人精品电影在线播放日韩精品电影一区亚洲 | 国产精品综合专区中文字幕免费播放| 免费国产午夜高清在线视频| 亚洲福利一区二区| 1000部禁片黄的免费看| 亚洲日本成本人观看| 久久亚洲欧洲国产综合| 天天影视色香欲综合免费| 青青草97国产精品免费观看| 精品亚洲成a人片在线观看少妇 |