一、屬性
- hash:返回URL中的hash(#后跟零個(gè)或多個(gè)字符),若沒有則返回空字符串;
- host/hostname:返回服務(wù)器名稱和端口號(hào)/服務(wù)器名稱;
- port:返回URL中指定端口號(hào),若無指定返回空字符串;
- href:返回當(dāng)前加載頁(yè)完整URL(location.toString()也返回這個(gè));
- pathname:返回URL中的目錄和文件名;
- protocol:返回當(dāng)前頁(yè)面使用協(xié)議;
- search:返回URL中以問號(hào)開頭的查詢字符串(若無則返回空字符串);
二、查詢字符串參數(shù)
function getParams() {
var qs = (location.search.length > 0 ? location.search.substring(1) : '');
if (!qs.length) return {};
var args = {},
items = qs.split('&'),
item = null,
name = null,
value = null;
for (var i = 0; i < items.length; i++) {
item = items[i].split('=');
name = decodeURIComponent(item[0]);
value = decodeURIComponent(item[1]);
if (name.length) args[name] = value;
}
return args;
}
三、位置操作
1、修改頁(yè)面url(跳轉(zhuǎn)到新頁(yè)面)
-
location.assign(urlString)
立即打開一個(gè)新的url并在瀏覽器歷史記錄中生成一條記錄; -
window.location = urlString;
location.href = urlString;
以上兩個(gè)方法也是調(diào)用了 assign() 方法; - 此外,修改location的其他屬性也可改變當(dāng)前加載頁(yè)面(只是不常用);
Tips: 以上修改都會(huì)生成一條新的歷史記錄,可通過點(diǎn)擊后退按鈕回到上一頁(yè);
2、替換頁(yè)面url(替換當(dāng)前頁(yè))
location.replace(urlString);
該方法會(huì)將當(dāng)前頁(yè)面改變,且不生成新的歷史記錄,相當(dāng)于替換了當(dāng)前頁(yè);
3、重新加載當(dāng)前頁(yè)
location.reload();
如果不傳任何參數(shù)則刷新重載當(dāng)前頁(yè);(有可能從緩存中加載)
如果傳入 true 則強(qiáng)制從服務(wù)器從新加載;(從服務(wù)器從新加載)