location将地址栏参数拆分成键值对的对象
window.location可获取地址栏的一系列信息,并且每个浏览器都支持该属性,非常方便。而获取到的问号后面的参数可以进行加工转变成我们所想要的键值对。
location的属性:
| 属性名 | 例子 | 说明 |
|---|---|---|
| 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刷新
location.assign(url); // 跳转链接
location.href = url; // 跳转链接
window.location = url; // 跳转链接
location.replace(url); // 链接链接,不保存于历史纪录
location.reload(); // 刷新,从缓存中读取
location.reload(true); // 刷新,重新从服务器读取
获取地址栏的参数,并以键值对展现
function getQueryStringArgs() {
var qs = (location.search.length > 0 ? location.search.substring(1) : ""),
args = {},
items = qs.length ? qs.split("&") : [],
item = null,
name = null,
value = null,
i = 0,
len = items.length;
for (i = 0; i < len; i++) {
item = items[i].split("=");
// decodeURIComponent解码
name = decodeURIComponent(item[0]);
value = decodeURIComponent(item[1]);
if (name.length) {
args[name] = value;
}
}
return args;
}
通过调用getQueryStringArgs()方法就可以返回地址栏中的参数信息,并保存于对象中。
location将地址栏参数拆分成键值对的对象的更多相关文章
- php将一个字符串转变成键值对数组的效率问题
有这样一种需求,将形式为"TranAbbr=IPER|AcqSsn=000000073601|MercDtTm=20090615144037"的字符串转换成如下格式的数组: Arr ...
- 将bean转换成键值列表
日常开发中在进行接口对接的数据传输时,有一种场景是将bean转成jsonString,这里可以将bean转换成Map再转成jsonString. 工具类如下: public static String ...
- C# 将json字符串进行排序 转成键值
public static string StortJson(string json) { var dic = JsonConvert.DeserializeObject<SortedDicti ...
- c# 数据拼接成键值对格式
public static object FindLayoutTypes() { //地鼓.地裂.墙裂.井水.泉水 var sb = new StringBuilder(); sb.Append(ge ...
- 把JSON转换成键值对
public static Dictionary<string, string> JsonStringToKeyValuePairs(string jsonStr) { char json ...
- 万能正则解析 json 数据 解析成键值对
string txt = "{\"ip\": \"127.0.0.1\", \"port\": 80, \"status ...
- 将字符串转换成C#认可的对象(有键值对的对象)
var resobj = Newtonsoft.Json.JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JArray>(result ...
- 两个对象key相同但是value不同,将value不同的键值对以对象形式输出
let obj={ name:'jack', age:18, sex:'girl' } let obj2={ name:'rose', age:18, sex:'boy' } var str={} f ...
- java解析出url请求的路径和参数键值对类 - 转
import java.util.HashMap; import java.util.Map; public class CRequest { /** * 解析出url请求的路径,包括页面 * @pa ...
随机推荐
- 思考的工作方式——计划经济or市场经济
背景:单位成立了技术领先的基础部门.专注于产品规划的技术解决方案部门.产品的发展规划方向.批准的项目和各部门的其他工作方案.工作内容是在这一领域没有问题.毕竟,从过去企业发展的一个部门模型现在是一个功 ...
- hibernate 双向n-n
领域模型: 关系数据模型 双向 n-n 关联须要两端都使用集合属性 双向n-n关联必须使用连接表 集合属性应添加 key 子元素用以映射外键列, 集合元素里还应添加many-to-many子元素关联实 ...
- 装双系统(win7/win8/ubuntu)问题总结
1.假设你要安装双系统,装系统是最好安装winows,然后再装ubuntu,因此,不解决它自己入选,我一般装ubuntu时刻.第一分区删除.然后用U硬盘直接安装ubuntu.在这一刻ubuntu将投入 ...
- 一张漫画说尽IT开发过程
- DP Leetcode - Maximum Product Subarray
近期一直忙着写paper,非常久没做题,一下子把题目搞复杂了..思路理清楚了非常easy,每次仅仅需更新2个值:当前子序列最大乘积和当前子序列的最小乘积.最大乘积被更新有三种可能:当前A[i]> ...
- JS匿名函数&闭包
<html> <head> <title> test </title> </head> <body> <script ty ...
- [wxWidgets]_[0基础]_[经常更新进度条程序]
场景: 1. 非常根据程序的进展需要处理业务,以更新进度条,进度条的目的是为了让用户知道业务流程的进度.一个进度条程序更友好,让用户知道在程序执行.不是没有反应. 2. 现在更新见过这两种方法的进展. ...
- poj 1698 Alice's Chance 拆点最大流
将星期拆点,符合条件的连边,最后统计汇点流量是否满即可了,注意结点编号. #include<cstdio> #include<cstring> #include<cmat ...
- jquery datatables api (转)
学习可参考:http://www.guoxk.com/node/jquery-datatables http://yuemeiqing2008-163-com.iteye.com/blog/20069 ...
- POJ 1664 把苹果
把苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25785 Accepted: 16403 Descript ...