window.location可獲取地址欄的一系列信息,而且每一個瀏覽器都支持該屬性,很是方便。而獲取到的問號後面的參數能夠進行加工轉變成咱們所想要的鍵值對。javascript
location的屬性:java
屬性名 | 例子 | 說明 |
---|---|---|
hash | 「#contents」 | 返回URL的hash(#後跟零或多個字符),若是URL中不包含散列,則返回空字符串 |
host | 「www.wrox.com:80」 | 返回服務器名稱和端口號(若是有) |
hostname | 「www.wrox.com」 | 返回不帶端口號的服務器名稱 |
href | 「http://www.wrox.com」 | 返回當前加載頁面的完整URL。而location對象的toString()方法也返回這個值 |
pathname | 「WileyCDA」 | 返回URL中的目錄或文件名 |
port | 「8080」 | 返回URL中指定的端口號。若是URL中不包含端口號則返回空字符串 |
protocol | 「http:」 | 返回頁面的使用協議。一般是http:或https: |
search | 「?q=javascript」 | 返回URL的查詢字符串,這個字符串以問號開頭 |
而修改了其中的任何屬性,都會使得頁面刷新,固然頁面刷新還有其它方式。瀏覽器
location刷新緩存
1 location.assign(url); // 跳轉連接 2 location.href = url; // 跳轉連接 3 window.location = url; // 跳轉連接 4 location.replace(url); // 連接連接,不保存於歷史紀錄 5 location.reload(); // 刷新,從緩存中讀取 6 location.reload(true); // 刷新,從新從服務器讀取
獲取地址欄的參數,並以鍵值對展示服務器
1 function getQueryStringArgs() { 2 var qs = (location.search.length > 0 ? location.search.substring(1) : ""), 3 args = {}, 4 items = qs.length ? qs.split("&") : [], 5 item = null, 6 name = null, 7 value = null, 8 i = 0, 9 len = items.length; 10 11 for (i = 0; i < len; i++) { 12 item = items[i].split("="); 13 14 // decodeURIComponent解碼 15 name = decodeURIComponent(item[0]); 16 value = decodeURIComponent(item[1]); 17 18 if (name.length) { 19 args[name] = value; 20 } 21 } 22 23 return args; 24 }
經過調用getQueryStringArgs()方法就能夠返回地址欄中的參數信息,並保存於對象中。url