获取url?后的参数
location对象 含有当前URL的信息. 属性 href 整个URL字符串.
protocol 含有URL第一部分的字符串,如http:
host 包含有URL中主机名:端口号部分的字符串.如//www.cenpok.net/server/
hostname 包含URL中主机名的字符串.如http://www.cenpok.net ;
port 包含URL中可能存在的端口号字符串.
pathname URL中"/"以后的部分.如~list/index.htm
hash "#"号(CGI参数)之后的字符串.
search "?"号(CGI参数)之后的字符串.
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
var query = location.search; //获取location的search属性,保存在search中
var theRequest = new Object(); //创建空对象
if (query.indexOf("?") != -1) { //如果query不是空字符串
var str = query.substr(1);
strs = str.split("&"); //将当前元素值按=切割,保存在strs中
for(var i = 0; i < strs.length; i ++) {
//unescape函数见后面
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]); //向theRequest中添加一个元素,属性名为strs[i].split("=")[0],值为strs[i].split("=")[1]
}
}
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
var context = "";
if (r != null)
context = r[2];
reg = null;
r = null;
return context == null || context == "" || context == "undefined" ? "" : context;
}
alert(GetQueryString("q"));
function GetRequest() {
var url = location.search; //获取url中"?"符后的字串
if (url.indexOf("?") != -1) { //判断是否有参数
var str = url.substr(1); //从第一个字符开始 因为第0个是?号 获取所有除问号的所有符串
strs = str.split("="); //用等号进行分隔 (因为知道只有一个参数 所以直接用等号进分隔 如果有多个参数 要用&号分隔 再用等号进行分隔)
alert(strs[1]); //直接弹出第一个参数 (如果有多个参数 还要进行循环的)
}
}
unescape() 函数
该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码。
其他参数获取
alert(window.location.pathname);//设置或获取对象指定的文件名或路径。
alert(window.location.href);//设置或获取整个 URL 为字符串。
alert(window.location.port);//设置或获取与 URL 关联的端口号码。
alert(window.location.protocol);//设置或获取 URL 的协议部分。
alert(window.location.hash);//设置或获取 href 属性中在井号“#”后面的分段。
alert(window.location.host);//设置或获取 location 或 URL 的 hostname 和 port 号码。
alert(window.location.search);//设置或获取 href 属性中跟在问号后面的部分。