如何獲取瀏覽器URL中查詢字符串的參數


首先要知道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%。

 

原文:https://www.cnblogs.com/wymninja/p/5716317.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM