JS基于Location實(shí)現(xiàn)訪問Url、重定向及刷新頁(yè)面的方法分析
本文實(shí)例講述了JS基于Location實(shí)現(xiàn)訪問Url、重定向及刷新頁(yè)面的方法。分享給大家供大家參考,具體如下:
js通過Location實(shí)現(xiàn)訪問Url,重定向,刷新頁(yè)
web中經(jīng)常會(huì)使用到刷新頁(yè)面,訪問url、重定向請(qǐng)求的功能。
javascript提供了許多方法訪問,修改當(dāng)前用戶在瀏覽器中訪問的url.所有的這些技術(shù)都是基于location對(duì)象的。它是作為window對(duì)象的屬性。你可以生成一個(gè)包含當(dāng)前url的新location對(duì)象:
var currentURL=window.location;
在這片文章你將看到location對(duì)象的所有屬性和方法,你將學(xué)到:
- 怎么讀取url不同部分
- 怎么重定向網(wǎng)頁(yè)
- 怎么自動(dòng)刷新或重載頁(yè)面.
1.分析url
URL有6部分組成,一些是可選的:
<協(xié)議>//<域名>:<端口>/<路徑><查詢參數(shù)><hash>
<protocol>//<hostname>:<port>/<pathname><search><hash>
協(xié)議和域名是必須項(xiàng),其它是可選項(xiàng)。
下面是一個(gè)包含所有部分的URL例子:
http://www.example.com:80/example.cgi?x=3&y=4#results
在這個(gè)例子中, http: 是 協(xié)議, www.example.com 是 域名, 80 是端口, /example.cgi 是路徑, ?x=3&y=4是查詢字符串, #results是hash, 或頁(yè)面內(nèi)部的錨點(diǎn).
2.通過Location讀取當(dāng)前的URL
你可以使用location對(duì)象的protocol,hostname,port,pathname,search,hash屬性訪問URL各個(gè)部分。你還可以使用下面屬性:
host
包含域名和端口例如: www.example.com:80
href
包含整個(gè)URL例如:http://www.example.com:80/example.cgi?x=3&y=4#results
示例:
var currentURL=window.location; alert(currentURL.href);//Displays'http://www.example.com:80/example.cgi?x=3&y=4#results' alert(currentURL.protocol);//Displays'http:' alert(currentURL.host);//Displays'www.example.com:80' alert(currentURL.hostname);//Displays'www.example.com' alert(currentURL.port);//Displays'80' alert(currentURL.pathname);//Displays'/example.cgi' alert(currentURL.search);//Displays'?x=3&y=4' alert(currentURL.hash);//Displays'#results'
3.使用Location操作URL
你可以使用location的href屬性,把頁(yè)面跳轉(zhuǎn)到不同于當(dāng)前頁(yè)面的頁(yè)面。
window.location. rel="external nofollow" ;
示例:
<input type="button" onclick="window.location. value="Visit www.google.com"/>
使用Location的href屬性跳轉(zhuǎn)頁(yè)面,前一頁(yè)的Url會(huì)保存在瀏覽器的history歷史中。當(dāng)用戶點(diǎn)擊瀏覽器的“后退”按鈕可以返回前一頁(yè)。如果你不想讓返回前一頁(yè)可使用Location.replace()
代替:
window.location.replace("http://www.example.com/anotherpage.html");
除了可以將頁(yè)面重定向不用的頁(yè)面,還可重定向當(dāng)前頁(yè)面不同的錨點(diǎn)
window.location.hash="#moreResults";
例如:
<input type="button" onclick="window.location.hash='#top'" value="Jump to the top of the page"/>
在頁(yè)面有個(gè)名為#top的錨點(diǎn)。點(diǎn)擊按鈕時(shí)瀏覽器會(huì)移動(dòng)到頂部。注意觀察瀏覽器地址欄的變化,當(dāng)你點(diǎn)擊瀏覽器后退按鈕可回到前一位置。
4.重載刷新頁(yè)面
可以調(diào)用Location.reload()
強(qiáng)制瀏覽器重新刷新當(dāng)前URL.就像當(dāng)前用戶點(diǎn)擊瀏覽器的刷新按鈕或F5一樣。
window.location.reload();
如果該方法沒有規(guī)定參數(shù),或者參數(shù)是 false,它就會(huì)用 HTTP 頭 If-Modified-Since 來(lái)檢測(cè)服務(wù)器上的文檔是否已改變。如果文檔已改變,reload()
會(huì)再次下載該文檔。如果文檔未改變,則該方法將從緩存中裝載文檔。這與用戶單擊瀏覽器的刷新按鈕的效果是完全一樣的。
如果把該方法的參數(shù)設(shè)置為 true,那么無(wú)論文檔的最后修改日期是什么,它都會(huì)繞過緩存,從服務(wù)器上重新下載該文檔。這與用戶在單擊瀏覽器的刷新按鈕時(shí)按住 Shift 健的效果是完全一樣。
window.location.reload(true);
簡(jiǎn)單示例:
<input type="button" onclick="window.location.reload()" value="Reload the page"/>
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript頁(yè)面元素操作技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
sass 中使用 /deep/ 修改 elementUI 組件樣式報(bào)錯(cuò)
這篇文章主要介紹了sass 中使用 /deep/ 修改 elementUI 組件樣式報(bào)錯(cuò)的解決方案,嘗試用 ::v-deep 替換 /deep/ ,成功解決了問題,感興趣的朋友跟隨小編一起看看吧2024-02-02JavaScript中的ubound函數(shù)使用實(shí)例
這篇文章主要介紹了JavaScript中的ubound函數(shù)使用實(shí)例,本文先是講解了ubound函數(shù)的語(yǔ)法,然后給出了用法代碼實(shí)例,需要的朋友可以參考下2014-11-11Bootstrap基本布局實(shí)現(xiàn)方法詳解
這篇文章主要為大家詳細(xì)介紹了Bootstrap基本布局實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11javascript多物體運(yùn)動(dòng)實(shí)現(xiàn)方法分析
這篇文章主要介紹了javascript多物體運(yùn)動(dòng)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了JavaScript多物體運(yùn)動(dòng)的相關(guān)注意事項(xiàng)與具體實(shí)現(xiàn)代碼,包含四個(gè)div塊的橫向、豎向移動(dòng),顏色與邊框漸變效果,需要的朋友可以參考下2016-01-01JavaScript實(shí)現(xiàn)彈出式可拖動(dòng)登錄框
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)彈出式可拖動(dòng)登錄框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01分析javascript中9 個(gè)常見錯(cuò)誤阻礙你進(jìn)步
這篇文章主要介紹了分析javascript中9 個(gè)常見錯(cuò)誤阻礙你進(jìn)步的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09詳談js中標(biāo)準(zhǔn)for循環(huán)與foreach(for in)的區(qū)別
下面小編就為大家?guī)?lái)一篇詳談js中標(biāo)準(zhǔn)for循環(huán)與foreach(for in)的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-11-11