JS基于Location實(shí)現(xiàn)訪問Url、重定向及刷新頁面的方法分析
本文實(shí)例講述了JS基于Location實(shí)現(xiàn)訪問Url、重定向及刷新頁面的方法。分享給大家供大家參考,具體如下:
js通過Location實(shí)現(xiàn)訪問Url,重定向,刷新頁
web中經(jīng)常會(huì)使用到刷新頁面,訪問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)頁
- 怎么自動(dòng)刷新或重載頁面.
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, 或頁面內(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屬性,把頁面跳轉(zhuǎn)到不同于當(dāng)前頁面的頁面。
window.location. rel="external nofollow" ;
示例:
<input type="button" onclick="window.location. value="Visit www.google.com"/>
使用Location的href屬性跳轉(zhuǎn)頁面,前一頁的Url會(huì)保存在瀏覽器的history歷史中。當(dāng)用戶點(diǎn)擊瀏覽器的“后退”按鈕可以返回前一頁。如果你不想讓返回前一頁可使用Location.replace()代替:
window.location.replace("http://www.example.com/anotherpage.html");
除了可以將頁面重定向不用的頁面,還可重定向當(dāng)前頁面不同的錨點(diǎn)
window.location.hash="#moreResults";
例如:
<input type="button" onclick="window.location.hash='#top'" value="Jump to the top of the page"/>
在頁面有個(gè)名為#top的錨點(diǎn)。點(diǎn)擊按鈕時(shí)瀏覽器會(huì)移動(dòng)到頂部。注意觀察瀏覽器地址欄的變化,當(dāng)你點(diǎn)擊瀏覽器后退按鈕可回到前一位置。
4.重載刷新頁面
可以調(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 來檢測服務(wù)器上的文檔是否已改變。如果文檔已改變,reload() 會(huì)再次下載該文檔。如果文檔未改變,則該方法將從緩存中裝載文檔。這與用戶單擊瀏覽器的刷新按鈕的效果是完全一樣的。
如果把該方法的參數(shù)設(shè)置為 true,那么無論文檔的最后修改日期是什么,它都會(huì)繞過緩存,從服務(wù)器上重新下載該文檔。這與用戶在單擊瀏覽器的刷新按鈕時(shí)按住 Shift 健的效果是完全一樣。
window.location.reload(true);
簡單示例:
<input type="button" onclick="window.location.reload()" value="Reload the page"/>
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript頁面元素操作技巧總結(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)文章
js循環(huán)map 獲取所有的key和value的實(shí)現(xiàn)代碼(json)
這篇文章主要介紹了js循環(huán)map 獲取所有的key和value的實(shí)現(xiàn)代碼(json),需要的朋友可以參考下2018-05-05
JavaScript詞法作用域與調(diào)用對(duì)象深入理解
關(guān)于 Javascript 的函數(shù)作用域、調(diào)用對(duì)象和閉包之間的關(guān)系很微妙,關(guān)于它們的文章已經(jīng)有很多,本文做了一些總結(jié),需要的朋友可以參考下2012-11-11
用正則表達(dá)式 動(dòng)態(tài)創(chuàng)建/增加css style script 兼容IE firefox
動(dòng)態(tài)創(chuàng)建/增加css style script 用正則表達(dá)式 兼容IE firefox2009-03-03
JavaScript實(shí)現(xiàn)垂直滾動(dòng)條效果
這篇文章為大家詳細(xì)主要介紹了JavaScript實(shí)現(xiàn)垂直滾動(dòng)條效果的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
JS forEach跳出循環(huán)2種實(shí)現(xiàn)方法
這篇文章主要介紹了JS forEach跳出循環(huán)2種實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
JavaScript中使用ActiveXObject操作本地文件夾的方法
以前一直用vbscript來操作文件夾,才發(fā)現(xiàn)原來使用JavaScript也是可以的,肯定不如vbs用的簡單,不過學(xué)習(xí)一下還是不錯(cuò)的2014-03-03

