如何用js擷取瀏覽器URL中查詢字串的參數

來源:互聯網
上載者:User

標籤:rip   str   tle   string   位置   image   技術   列表   java   

首先要知道Location這個對象以及這個對象中的一些屬性:

href:設定或返回完整的url.如本部落格首頁返回http://www.cnblogs.com/wymninja/

host:設定或返回主機名稱和當前的URL的連接埠號碼。本部落格首頁返回www.cnblogs.com

hostname:設定或返回當前URL的主機名稱。本部落格首頁返回www.cnblogs.com

hash:設定或返回從井號(#)開始的URL(錨)。本部落格首頁返回 空

pathname:設定或返回當前URL的路徑部分。本部落格首頁返回/wymninja/

port:設定或返回當前URL的連接埠號碼。本部落格首頁返回 空

protocol:設定或返回當前URL的協議。本部落格首頁返回 http:

search:設定或返回從問號 (?) 開始的 URL(查詢部分)

location對象屬性圖示:圖片來自慕課網

location的href屬性存放的是文檔的完整 URL,其他屬性則分別描述了 URL 的各個部分。這些屬性與 Anchor 對象(或 Area 對象)的 URL 屬性非常相似。當一個 Location 對象被轉換成字串,href 屬性的值被返回。這意味著你可以使用運算式 location 來替代 location.href。不過 Anchor 對象表示的是文檔中的超連結,Location 對象表示的卻是瀏覽器當前顯示的文檔的 URL(或位置)

var s = location.toString();console.log(s);#result//http://www.cnblogs.com/wymninja/

 

Location對象的這些屬性都是可讀可寫的,如果改變了文檔的location.href,則瀏覽器會載入新的頁面。同樣如果改變了location.hash,則頁面會跳轉到新的錨點,但此時頁面不會重載。

Location對象還有三個方法:assign()、reload()、replace()

assign():載入新的文檔

reload():可以重新裝載當前文檔

replace():可以裝載一個新文檔而無須為它建立一個新的記錄。也就是說,在瀏覽器的曆史列表中,新文檔將替換當前文檔。這樣就不能通過【返回】按鈕返回當前文檔了。

注意:

不要混淆Window對象的location屬性和Document對象的location對象。前者引用一個Location對象,後者只是一個 唯讀字串,並不具有Location對象的任何特性。Document.location與document.URL是同義的。但是,當存在伺服器重定 向時,document.location包含的是已經裝載的URL,而location.href包含的則是原始請求的文檔的URL。

所以要擷取瀏覽器URL中查詢字串的參數。也就是location.search部分。以慕課網圖片為例就是?courseid = 8&cahpterid = 86中的8和86!!!!然後就利用如下代碼:

function getQuery(name){  var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");var r = window.location.search.substr(1).match(reg);//從?之後開始匹配如getQuery(courseid)返回一個數組["courseid=8","","8","&",index:0,input:"courseid=8"]
if (r!=null) return unescape(r[2]); return null;}

其中:

對match不清楚可查閱我的部落格Javascript string對象

unescape 對參數進行解碼,如空格解碼為20%。

如何用js擷取瀏覽器URL中查詢字串的參數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.