午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > HTML5實現無刷新修改URL的方法

HTML5實現無刷新修改URL的方法

熱門標簽:黃石ai電銷機器人呼叫中心 欣鼎電銷機器人 效果 如何查看地圖標注 高德地圖標注商戶怎么標 電話機器人技術 地圖標注軟件打印出來 惡搞電話機器人 智能電銷機器人被禁用了么 ok電銷機器人

前言

今天在做一個vue的搜索功能,需要從搜索結果頁面跳轉到細節頁面,然后點擊返回還能返回到剛剛的結果頁面,如果只用window.history.go(-1)當然會重新刷新搜索頁面,當然是不行的。

我嘗試了倆種方式來修改url:

  • window.location.href,拼接一個搜索的key值,點擊搜索的同時,刷新了頁面,url改變了,功能是實現了,可是bug來了...,搜索頁面閃爍后才進入結果頁,而結合不跳轉頁面就不會發生閃爍的情況,所以當頁面刷新時,vue實例都會被重新加載。
  • window.location.hash,url中#為網頁中的一個位置,當讀取此url時,頁面會自動滾動到錨點處。這種方法不會向服務器發送請求,也不會重載頁面。可讀寫。讀取時,可以用來判斷網頁狀態是否改變;寫入時,則會在不重載網頁的前提下,創造一條訪問歷史記錄。

新增API

百度后發現HTML5為window.history對象引入了兩個新的api是history.pushState()history.replaceState()方法,它們分別可以添加和修改歷史記錄條目。這些方法通常與window.onpopstate事件配合使用。兩種api都能改變當前的url,不同的是,pushState在瀏覽器中創建一條新的歷史記錄,而history.replaceState僅僅替換當前地址為指定url。

HTML5 新增的歷史記錄 API 均可以實現無刷新更改地址欄鏈接,配合 AJAX 完全可以做到無刷新跳轉。他們的作用非常大,可以做到改變網址卻不需要刷新頁面,這個特性后來用到了單頁面應用中比如:vue-router,react-router-dom里面。那么下面介紹新API的使用方法

pushState方法

上面提到的這套 API 提供一種「人為操縱」瀏覽器歷史記錄的方法。

我們可以將瀏覽器歷史記錄可以看作一個「棧」。棧是一種后進先出的結構,可以把它想象成一摞盤子,用戶每點開一個新網頁,都會在上面加一個新盤子,叫「入棧」。用戶每次點擊「后退」按鈕都會取走最上面的那個盤子,叫做「出棧」。而每次瀏覽器顯示的自然是最頂端的盤子的內容。

語法:window.history.pushState(state, title, url);

執行pushState函數之后,會往瀏覽器的歷史記錄中創建一條新記錄,同時改變地址欄的地址內容。它可以接收三個參數,按語法順序分別為:

  • 一個state對象或者字符串,用于描述新記錄的一些特性。這個參數會被一并添加到歷史記錄中,以供以后使用。這個參數是開發者根據自己的需要自由給出的。該值是后期可以通過history.state;獲取當前頁面的參數,
  • 一個字符串,代表新頁面的標題。當前基本上所有瀏覽器都會忽略這個參數。
  • 一個字符串,代表新頁面的相對地址。(必須與當前頁面處在同一個域。)

簡單例子:假設當前頁面為renfei.org/,打開控制臺執行下面的 JavaScript 語句:

window.history.pushState({id: 1,name: "profile1"}, "My Profile", "/profile/");  //第一二參數可忽略設置為null

之后,地址欄的地址就會變成renfei.org/profile/,但同時瀏覽器不會刷新頁面,甚至不會檢測目標頁面是否存在。

replaceState方法

有時,你希望不添加一個新記錄,而是替換當前的記錄,倆者區別在于 replaceState() 是修改了當前的歷史記錄項而不是新建一個。

replaceState和pushState原理一樣使用也一樣,最常用的方法:

window.history.replaceState({id: 1,name: "profile"},'下載','download?id=1');

特點:replaceState不會加入到歷史記錄里面,用history.go(-1)會跳過當前頁面相當于是history.go(-2)。

popstate事件

當頁面加載時,它可能會有一個非空的state對象。這可能發生在當頁面設置一個state對象(使用pushState或者replaceState)之后用戶重啟了瀏覽器。當頁面重新加載,頁面將收到onload事件,但不會有popstate事件。然而,如果你讀取history.state屬性,將在popstate事件發生后得到這個state對象

var currentState = history.state; //得到當前頁面設置的history.pushState的state對象參數值

調用 history.pushState() 或者 history.replaceState() 不會觸發 popstate 事件。 popstate事件只會在瀏覽器某些行為下觸發, 比如點擊后退、前進按鈕(或者在JavaScript中調用history.back()、history.forward()、history.go()方法)。

例子:假設當前頁面地址是http://example.com/index.html

window.onpopstate = function(event) {
  alert("location: " + document.location.href + ", state: " + JSON.stringify(event.state));//拿到history.state對象值
};
//綁定事件處理函數. 
history.pushState({page: 1}, "title 1", "?page=100");    //添加并激活一個歷史記錄條目 http://example.com/index.html?page=100,條目索引為1    //history.state為{page: 1}
history.pushState({page: 2}, "title 2", "?page=200");    //添加并激活一個歷史記錄條目 http://example.com/index.html?page=200,條目索引為2
history.replaceState({page: 3}, "title 3", "?page=300"); //修改當前所在頁面激活的歷史記錄條目 http://ex..?page=200 變為 http://ex..?page=300,條目索引為3

history.back(); // 彈出 "location: http://example.com/index.html?page=100, state: {"page":1}"
history.back(); // 彈出 "location: http://example.com/index.html, state: null
history.go(2);  // 彈出 "location: http://example.com/index.html?page=300, state: {"page":3}

pushState方法與設置hash值的區別

在某種意義上,調用 pushState() 與 設置 window.location = "#foo" 類似,二者都會在當前頁面創建并激活新的歷史記錄。但 pushState() 具有如下幾條優點:

新的 URL 可以是與當前URL同源的任意URL 。而設置 window.location 僅當你只修改了哈希值時才保持同一個文件。如果需要,可以不必改變URL就能創建一條歷史記錄。而設置 window.location.hash = "#foo";只有在當前哈希不是 #foo 的情況下, 才會創建一個新的歷史記錄項。我們可以為新的歷史記錄項關聯任意數據。而基于哈希值的方式,則必須將所有相關數據編碼到一個短字符串里。

需要注意的是通過history.pushState修改網頁的URL地址,在配合相關代碼顯示隱藏相應界面便可以實現單頁面多界面相互操作。該方法比直接訪問URL地址速度快,執行效率高,UI體驗好,但會增加頁面的復雜性及耦合性,要視實際情況而定,一般都用在dialog彈出框上。

應用:全站 AJAX,并使瀏覽器能夠抓取 AJAX 頁面

這個可以干啥用?一個比較常用的場景就是,配合 AJAX。

假設一個頁面左側是若干導航鏈接,右側是內容,同時導航時只有右側的內容需要更新,那么刷新整個頁面無疑是浪費的。這時我們可以使用 AJAX 來拉取右面的數據。但是如果僅僅這樣,地址欄是不會改變的,用戶無法前進、后退,也無法收藏當前頁面或者把當前頁面分享給他人;搜索引擎抓取也有困難。這時,就可以使用 HTML5 的 History API 來解決這個問題。

思路:首先綁定click事件。當用戶點擊一個鏈接時,通過preventDefault函數防止默認的行為(頁面跳轉),同時讀取鏈接的地址(如果有 jQuery,可以寫成$(this).attr('href')),把這個地址通過pushState塞入瀏覽器歷史記錄中,再利用 AJAX 技術拉取(如果有 jQuery,可以使用$.get方法)這個地址中真正的內容,同時替換當前網頁的內容。

為了處理用戶前進、后退,我們監聽popstate事件。當用戶點擊前進或后退按鈕時,瀏覽器地址自動被轉換成相應的地址,同時popstate事件發生。在事件處理函數中,我們根據當前的地址抓取相應的內容,然后利用 AJAX 拉取這個地址的真正內容,呈現,即可。

最后,整個過程是不會改變頁面標題的,可以通過直接對document.title賦值來更改頁面標題。

總結

以上所述是小編給大家介紹的HTML5實現無刷新修改URL的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

標簽:盤錦 赤峰 聊城 萍鄉 綏化 中山 金昌 阿壩

巨人網絡通訊聲明:本文標題《HTML5實現無刷新修改URL的方法》,本文關鍵詞  HTML5,實現,無,刷新,修改,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5實現無刷新修改URL的方法》相關的同類信息!
  • 本頁收集關于HTML5實現無刷新修改URL的方法的相關信息資訊供網民參考!
  • 推薦文章
    欧美午夜理伦三级在线观看| 一级片手机在线观看| 92国产精品观看| 欧美亚洲另类久久综合| 日本特黄久久久高潮| 国产91免费观看| 国产免费av观看| 91av在线播放视频| 国产精品无码久久久久成人app| 亚洲福利视频二区| 青青青在线免费观看| 亚洲精品久久久久久久久久久久久| 又大又长粗又爽又黄少妇视频| 欧美日韩午夜视频在线观看| 成人一区二区av| 中文字幕欧美日本乱码一线二线| 国内自拍中文字幕| 久久久久综合网| 狠狠操精品视频| 在线免费不卡视频| 熟女少妇内射日韩亚洲| 亚洲女在线观看| 国产主播在线观看| 久久精品福利视频| 成人av无码一区二区三区| 1769国产精品| 久久66热偷产精品| 久久久久久久中文字幕| 日本xxxxxxx免费视频| 欧美色视频日本高清在线观看| jizz18女人| 日韩你懂的在线播放| 亚洲精品国产精品乱码| 97超级碰碰碰| 国产成人精品三级麻豆| 日韩视频在线视频| 欧美精品色综合| 国产性xxxx高清| 91免费综合在线| 国产精品第四页| 亚洲av无码一区二区二三区| 亚洲理论在线a中文字幕| 性猛交xxxx乱大交孕妇印度| 亚洲综合网中心| 一区二区高清在线| a级在线免费观看| 97在线免费观看| 成人免费av资源| 日本女人性视频| 欧美成人网在线| 久久九九精品| 亚洲综合在线网站| 精品国产欧美一区二区| 性一交一乱一乱一视频| 日本不卡一区| 五月综合激情网| 中文字幕在线看人| 日本一区视频在线| 日韩欧美一级精品久久| 天天操天天干天天插| 亚洲综合第一| 精品粉嫩aⅴ一区二区三区四区| 国产亚洲久一区二区| 亚洲在线欧美| 亚洲人精选亚洲人成在线| 麻豆国产91在线播放| 欧美熟妇另类久久久久久多毛| 在线观看精品国产视频| 麻豆国产精品官网| 欧美国产日韩在线播放| 国产精品日韩欧美一区二区三区| 欧美国产极速在线| 国产精品青青在线观看爽香蕉| 精品视频久久久久久久| 亚洲美女偷拍久久| 国产女人aaa级久久久级 | 成人爱爱电影网址| 91精东传媒理伦片在线观看| 国产美女精品一区二区三区| 久久五月激情| 日本不卡视频在线| 97国产精品久久久| 性生活免费在线观看| 色婷婷.com| 亚洲自拍偷拍一区| 久久伊人一区| 亚洲bbw性色大片| 91在线视频一区| 欧美人与性动交a欧美精品| 亚洲人线精品午夜| 精品第一国产综合精品aⅴ| 日韩不卡一二三区| 中文在线观看免费网站| 一级片视频播放| 天堂av手机版| 全国精品久久少妇| 成人av电影在线| 夜夜爽妓女8888视频免费观看| 国产精久久一区二区三区| a资源在线观看| 日本vs亚洲vs韩国一区三区| 色婷婷国产精品综合在线观看| 青青久久aⅴ北条麻妃| 欧美三级午夜理伦三级老人| 欧美成人aaa片一区国产精品| 中文字幕乱码无码人妻系列蜜桃| 在线能看的av| 亚洲黄色三级视频| 精品国产伦一区二区三区| 精品一区二区日韩| 国产精品久久久午夜夜伦鲁鲁| 国产在线一区视频| 中国一级免费毛片| 欧美激情一二三区| 欧美在线一二三四区| 精品成a人在线观看| 午夜精品久久久久久久久久久久久 | 国产成人91久久精品| 国产精品自产拍高潮在线观看| 中文字幕第50页| 一级片黄色免费| 成人av一区二区三区在线观看| 美女精品在线 | 久久99精品国产麻豆不卡| 午夜18视频在线观看| 动漫精品一区一码二码三码四码| www.亚洲视频.com| 精品美女永久免费视频| 国产伦精品一区二区三区免费迷 | 欧美色窝79yyyycom| 97精品免费视频| 久久99久久亚洲国产| 国产成人一区二区三区免费看| 亚洲欧美日韩国产yyy| 国产 高清 精品 在线 a| 欧美日韩高清免费| 91九色综合久久| 亚洲高清免费在线观看| 国产尤物av一区二区三区| 999热视频| 国产精品男人的天堂| 色中色综合影院手机版在线观看 | 国产综合欧美在线看| 国产欧美日韩最新| 日本亚洲精品在线观看| 亚洲色图20p| 国产精品久久久爽爽爽麻豆色哟哟 | 亚洲激情图片小说视频| 99re在线视频这里只有精品| 久久狠狠亚洲综合| 视频一区二区欧美| 日本不卡视频在线| 久久久777| 日韩电影在线观看一区| 天堂中文在线观看视频| 日韩在线视频第一页| 亚洲精品国产精| 色呦呦视频在线| 无码一区二区三区在线| 蜜桃av乱码一区二区三区| 成人欧美一区二区三区黑人一| 国产又粗又长又黄的视频| 无码人妻一区二区三区免费| 亚洲视频一区二区在线| 久久成人18免费网站| 国产精品99久久99久久久二8| 一区二区三区四区不卡| 少妇光屁股影院| www国产在线| 欧美一级淫片aaaaaa| 国产美女精品视频国产| 最好看的日本字幕mv视频大全| 一级黄色片在线观看| 国产一区二区三区成人| 最近中文字幕在线观看| 国产三级视频在线播放| 激情五月婷婷在线| 美女在线视频一区| 午夜精品一区二区三区电影天堂| 夜夜嗨av色一区二区不卡| 久久久com| 又黄又爽的网站| 一级久久久久久| 成人av一区二区三区| 日韩在线观看av| 福利在线一区二区三区| 国产偷人爽久久久久久老妇app| 国产欧美日韩三级| 久久久av免费| 大地资源网在线观看免费官网| 国产手机在线视频| 亚洲精品乱码久久久久久久久 | 欧美 日本 国产| 91成人在线免费观看| 欧美亚洲免费高清在线观看 | 国精产品一区一区三区mba视频| 国产性色av一区二区| 欧美激情手机在线视频| 在线看成人av电影| 欧美福利视频一区二区| 欧美在线色视频| 91九色蝌蚪porny| 91国产免费观看| 欧美午夜精品一区二区| 疯狂欧美牲乱大交777| 欧美日韩视频免费| 亚洲精品一区二区三区四区| 懂色av中文一区二区三区天美| 久久免费高清视频| 亚洲老女人av| 国产成人综合亚洲91猫咪| 日韩精品在线播放| 5566av亚洲| 在线天堂www在线国语对白| 一区二区三区免费观看| 成年女人18级毛片毛片免费| 国产精品xxxx喷水欧美| 亚洲一区二区综合| 日本最新一区二区三区视频观看| 亚洲欧洲日韩综合| 日韩中文字幕观看| 日韩av在线免费播放| 国产三级精品三级在线| 国产无人区一区二区三区| 国产精选一区二区| 中文字幕永久在线观看| 中文字幕日本不卡| 久久久久久18| 久久精品国产亚洲av久| 久久久蜜桃精品| 91欧美视频网站| 欧美精品性生活| 日韩性xxxx| 久久国产精品偷| 国产一区二区在线不卡| 日韩一级大片在线观看| 粉嫩av一区二区三区天美传媒| 亚洲av成人精品日韩在线播放| 久久久久这里只有精品| 国产精品高清一区二区三区| 亚洲无码精品国产| 日韩美女视频一区| 久久香蕉国产线看观看网| 亚洲精品中文字幕在线| 人妻与黑人一区二区三区| 中文字幕av资源一区| 久久精品成人动漫| 国产精品动漫网站| 你懂得在线视频| 国产91在线看| 亚洲性生活视频在线观看| 男女高潮又爽又黄又无遮挡| 午夜精品久久久久久久第一页按摩| 在线不卡免费欧美| 永久免费在线看片视频| 国产美女自慰在线观看| 欧美日韩国产精品专区| 午夜久久资源| 精品人妻无码一区二区色欲产成人 | 欧美黄色免费网址| 97香蕉碰碰人妻国产欧美| 人人爽人人爽av| 美女日韩在线中文字幕| 亚洲第一网站免费视频| 在线免费观看av的网站| 亚洲三级理论片| 欧美精品无码一区二区三区| 99精品一区二区| 国产乱人伦真实精品视频| 欧美熟妇另类久久久久久不卡| 97国产成人精品视频| 免费在线不卡视频| 亚洲精品中文字幕av| 一级欧美一级日韩片| 亚洲成人免费观看| 日b视频免费观看| 久久色在线观看| 国产免费亚洲高清| 国产精选久久久| 亚洲美女性生活视频| 无码成人精品区在线观看| 在线观看成人小视频| 伊人免费视频二| 天天影视涩香欲综合网| youjizz.com在线观看| 午夜精品久久久久久久99老熟妇| 欧美哺乳videos| 中文字幕a在线观看| 欧美午夜精品久久久久久孕妇 | 亚洲国产一区在线观看| 国产精品自拍偷拍| 狂野欧美一区| 亚洲精品影院| 亚洲免费电影在线| 自拍偷拍亚洲天堂| 欧美日韩国产一区中文午夜| 妺妺窝人体色www聚色窝仙踪 | 最近中文字幕在线观看| 欧美高清激情视频| 国产精品女人久久久| 日韩av成人在线| 国产欧美日韩综合精品一区二区三区| 欧美日韩福利视频| 日韩熟女精品一区二区三区| 欧美日韩精品在线| 国产精品自在自线| 国产精品久久久久久久久免费樱桃| 不卡视频一区二区| 国产伦精品一区二区三区免费迷 | 国产精品亚洲综合天堂夜夜| www日本高清| 91日本在线观看| 精品制服美女久久| 中文有码久久| 亚洲精品自拍动漫在线| www.天天射.com| 欧美区视频在线观看| 日本成人免费在线观看| 自拍偷拍亚洲在线| 国产九色91回来了| 久久久人成影片一区二区三区观看 | 亚洲码在线观看| 精品人妻一区二区三区免费看| 91精品国产色综合久久不卡98口| 国产精品suv一区二区三区| 国产成人精品一区二区三区| 欧美性猛交 xxxx| 久久国产精品久久精品国产| 国产视频一区二区在线| 成年人在线看片| 一区二区日韩av| 毛片网站免费观看| 中文字幕亚洲专区| 国产午夜麻豆影院在线观看| 亚洲tv在线观看| 久久精品欧美一区二区三区不卡 | 久久国产一区| 成人av在线一区二区三区| 国产一级黄色录像片| 色欧美88888久久久久久影院| 99精品中文字幕| 国产91精品在线播放| 成人毛片视频在线观看| 丰满少妇在线观看| 欧美麻豆精品久久久久久| 日韩成人一区二区三区| 日本一本a高清免费不卡| 韩国v欧美v日本v亚洲v| 婷婷无套内射影院| 欧美手机在线视频| 强行糟蹋人妻hd中文| 成人精品视频99在线观看免费| 日本一区二区免费在线观看视频| 亚洲国产综合av| 日韩视频在线观看免费| 亚洲国产欧美另类| 国产女主播自拍| 日韩欧美成人激情| 无码人妻一区二区三区线| 97成人精品区在线播放| 激情图区综合网| 在线中文字日产幕| 日韩在线高清视频| 成人av在线资源网站| 久久中文字幕人妻| 91日本在线视频| 婷婷综合另类小说色区| 69av视频在线观看| 强开小嫩苞一区二区三区网站| 91麻豆精品国产91| 日本中文字幕一区二区有限公司| 欧美女同在线观看| 国产成人精品优优av| 亚洲大片精品永久免费| 中文字字幕在线观看| 国产黄色片免费在线观看| 亚洲欧美精品一区| 99riav一区二区三区| 亚洲女同二女同志奶水| 欧美一区二区三区精美影视| 欧美性色综合网| 国产女主播喷水视频在线观看| 欧美 日韩 亚洲 一区| 最新国产精品亚洲| 久久久精品免费观看| 日本少妇做爰全过程毛片| 国内精品国产三级国产99| 欧美乱大交xxxxx| 亚洲三级在线免费观看| 亚洲一区在线观| 国产又黄又猛的视频| 51国产成人精品午夜福中文下载| 91精品国产欧美一区二区成人| 青草草在线视频| 99精品人妻少妇一区二区 | 好吊成人免视频| 国产九色精品成人porny | 国产精品水嫩水嫩| 国产不卡精品视频| 国产呦小j女精品视频| 在线免费观看一区二区三区| 欧美激情xxxx| 欧美日韩一区视频| 久久日韩精品一区二区五区| 一级久久久久久| 少妇精品无码一区二区三区| 国产一区在线免费| 亚洲免费电影一区| 亚洲人成在线播放网站岛国| www.av在线.com|