JS获取当前页面URL各种参数
一:Location
Location 对象包含有关当前 URL 的信息。
Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问。
hash | 设置或返回从井号 (#) 开始的 URL(锚)。 |
---|---|
host | 设置或返回主机名和当前 URL 的端口号。 |
hostname | 设置或返回当前 URL 的主机名。 |
href | 设置或返回完整的 URL。 |
pathname | 设置或返回当前 URL 的路径部分。 |
port | 设置或返回当前 URL 的端口号。 |
protocol | 设置或返回当前 URL 的协议。 |
search | 设置或返回从问号 (?) 开始的 URL(查询部分)。 |
例子
var href = window.location.href;
二:编码解码
正确的编码解码有助于处理中文字符,不正确则会中文乱码。
函数 | 描述 |
---|---|
decodeURI() | 解码某个编码的 URI。 |
decodeURIComponent() | 解码一个编码的 URI 组件。 |
encodeURI() | 把字符串编码为 URI。 |
encodeURIComponent() | 把字符串编码为 URI 组件。 |
escape() | 对字符串进行编码。 |
unescape() | 对由 escape() 编码的字符串进行解码。 |
三:复制即用
网上的示例大都是用unescape()
解码,不过测试中文依旧乱码,换成decodeURI()
即可。
/**
* 获取URL参数
* @param 参数名
* @returns 参数值
*/
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null) return decodeURI(r[2]);
return null;
}
在使用时最好加一下空值判断:
if (GetQueryString("sex")!=null&&GetQueryString("sex").length>0) {
//
}