未加星标

JavaScript:获取url的querystring参数

字体大小 | |
[前端(javascript) 所属分类 前端(javascript) | 发布者 店小二05 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏
一. 获取url的querystring参数

获取url的querystring参数的两种方法如下:

1.1 方法一:正则匹配 //获取url中的参数
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", i); // 匹配目标参数
var result = window.location.search.substr(1).match(reg); // 对querystring匹配目标参数
if (result != null) {
return decodeURIComponent(result[2]);
} else {
return null;
}
}

对于 http://localhost/index.html?q1=abc&q2=efg&q3=h 的url,获取 q1 参数值的方法如下:

var q1 = getQueryString('q1'); // abc 1.2 方法二:split function getQueryString() {
var qs = location.search.substr(1), // 获取url中"?"符后的字串
args = {}, // 保存参数数据的对象
items = qs.length ? qs.split("&") : [], // 取得每一个参数项,
item = null,
len = items.length;
for(var i = 0; i < len; i++) {
item = items[i].split("=");
var name = decodeURIComponent(item[0]),value = decodeURIComponent(item[1]);
if(name) {args[name] = value;
}
}
return args;
}

对于 http://localhost/index.html?q1=abc&q2=efg&q3=h 的url,获取 q1 参数值的方法如下:

var qs = getQueryString();
var q1 = qs["q1"]; // abc
console.log(q1);

用上面的getQueryString()方法能很好的解决获取url的querystring参数问题。就

上面两种getQueryString()方法都能很好地解决获取url的querystring参数问题。就此顺便整理一下Location对象,方便日后学习参考。

二. Location对象的属性

备注:以 http://localhost:80/dir/index.html?q1=abc&q2=efg&q3=h#anchor 为例:

属性 定义 示例 hash 返回URL中的hash(#后跟零或多个字符串) #anchor host 相当于hostname + port,即:主机名(域名)+端口号 localhost:80 hostname 主机名(域名) localhost href 当前页面的完整URL http://localhost:80/dir/index.html?q1=abc&q2=efg&q3=h#anchor pathname URL中的目录和文件名/dir/index.html port 端口号 80 protocal 协议 http: search 查询字符串。这个字符以问号开头 ?q1=abc&q2=efg&q3=h

location的这8个属性都是可读写的。

其中,改变location.href会跳转到新的URL页面,而修改location.hash会跳到当前页面中锚点位置。

每次修改window.location的属性(hash除外),页面都会以新的URL重新加载,并在浏览器的历史纪录中生成一条新纪录。

三. Location对象的方法 方法 说明 assign(url) 打开新的URL,并在浏览器的历史纪录中生成一条记录。 replace(url) 打开新的URL,但是不会在浏览器的历史纪录中生成新纪录。 reload(force) 刷新当前页面。force为true时从服务器端重新加载;为false时从浏览器缓存中重新加载。默认值false。

其中, location.assign(url) 的效果跟下列两行代码的效果完全一样:

window.location = url;
location.href = url;

位于 location.reload() 调用之后的代码可能会也可能不会执行,这取决于网络延迟或系统资源等因素。因此,最好将 location.reload() 放在代码的最后一行。

本文前端(javascript)相关术语:javascript是什么意思 javascript下载 javascript权威指南 javascript基础教程 javascript 正则表达式 javascript设计模式 javascript高级程序设计 精通javascript javascript教程

分页:12
转载请注明
本文标题:JavaScript:获取url的querystring参数
本站链接:http://www.codesec.net/view/480544.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 前端(javascript) | 评论(0) | 阅读(24)