<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
        主站蜘蛛池模板: 国拍在线精品视频免费观看| 在线看片免费人成视频久网下载| 浮力影院亚洲国产第一页| 国产亚洲精品AA片在线观看不加载| 亚洲av无码专区国产不乱码 | 精品久久久久久国产免费了| 亚洲国产高清精品线久久| 亚洲日产2021三区| 一级毛片大全免费播放下载| 亚洲一级毛片免费看| 日韩精品亚洲人成在线观看| 午夜亚洲WWW湿好爽| 国产gav成人免费播放视频| 国产亚洲Av综合人人澡精品| 99久久免费精品高清特色大片| 亚洲国产天堂久久综合网站| 无忧传媒视频免费观看入口| 亚洲精品无码你懂的网站| 亚洲高清一区二区三区| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 91麻豆精品国产自产在线观看亚洲 | 亚洲福利精品电影在线观看| 国产精品极品美女自在线观看免费 | 亚洲色欲久久久综合网东京热| 国内精品免费在线观看| 无码欧精品亚洲日韩一区夜夜嗨 | 中文字幕无码一区二区免费| 亚洲精品福利网泷泽萝拉| 拨牐拨牐x8免费| 一区二区三区免费在线视频| 亚洲AV无码精品色午夜果冻不卡 | 嫩草在线视频www免费观看| 中文字幕精品无码亚洲字| 永久在线观看免费视频| 亚洲免费中文字幕| 亚洲av麻豆aⅴ无码电影| 精品国产污污免费网站| 亚洲偷自拍另类图片二区| 中文字幕亚洲综合久久男男| 波多野结衣免费在线观看| 菠萝菠萝蜜在线免费视频|