在js中获取query string 以及重写URL的函数
函数用途:如标题。1. 从URL中解析出參数,2.重写URL中的參数值
例如以下代码所看到的。包括了測试。能够直接copy到浏览器中,输入測试地址:localhost:xxx?a=1&b=2&c=3 ,在console中执行查看结果:
// - test // - get from current location
var url = document.location.href; // - extract param from url
console.log(getUrlParam(url,"a") == "1");
console.log(getUrlParam(url,"b") == "2");
console.log(getUrlParam(url,"c") == "3"); // - rewrite url
url = setUrlParam(url,"a",3);
url = setUrlParam(url,"b",1);
url = setUrlParam(url,"c",2); console.log(getUrlParam(url,"a") == "3");
console.log(getUrlParam(url,"b") == "1");
console.log(getUrlParam(url,"c") == "2"); // - helper functions function getUrlParam(location,name) {
var url = location;
var splitIndex = url.indexOf("?") + 1;
var paramStr = url.substr(splitIndex, url.length); var arr = paramStr.split('&');
for (var i = 0; i < arr.length; i++) {
var kv = arr[i].split('=');
if (kv[0] == name) {
return kv[1];
}
}
return "";
} function setUrlParam(location,name, value) {
var url = location;
var splitIndex = url.indexOf("?") + 1;
var paramStr = url.substr(splitIndex, url.length); var newUrl = url.substr(0, splitIndex); // - if exist , replace
var arr = paramStr.split('&');
for (var i = 0; i < arr.length; i++) {
var kv = arr[i].split('=');
if (kv[0] == name) {
newUrl += kv[0] + "=" + value;
} else {
if (kv[1] != undefined) {
newUrl += kv[0] + "=" + kv[1];
}
}
if (i != arr.length - 1) {
newUrl += "&";
}
} // - if new, add
if (newUrl.indexOf(name) < 0) {
newUrl += splitIndex == 0 ? "?" + name + "=" + value : "&" + name + "=" + value;
}
return newUrl;
}
IE中执行结果:
在js中获取query string 以及重写URL的函数的更多相关文章
- js中获取数据类型
ES5中,js中数据类型:number.string.boolean.undefined.null.object js中获取数据类型常用的四种方式 实例: var a = 123, b = true, ...
- JS中获取元素属性的逆天大法
给大家聊下js中获取元素属性的逆天大法,胆小慎入,切记切记!!! innerHTML.outerHTML.innerText .outerText.value.text().html(),val() ...
- js中获取URL中指定的查询字符串
js中获取URL中指定的搜索字符串,主要利用location对象实现,废话少说,上代码. function getSearchString(key) { // 获取URL中?之后的字符 var str ...
- js中获取css属性
直接获取 window.onload = function() { var but = document.getElementById('button'); var div = document.ge ...
- 【2017-06-27】Js中获取地址栏参数、Js中字符串截取
一.Js中获取地址栏参数 //从地址栏获取想要的参数 function GetQueryString(name) { var reg = new RegExp("(^|&)" ...
- js中获取css样式属性值
关于js中style,currentStyle和getComputedStyle几个注意的地方 (1)用js的style只能获取元素的内联样式,内部样式和外部样式使用style是获取不到的.针对css ...
- jmeter从CSV中获取非正常string
jmeter从CSV中获取非正常string,如CSV中有一列值为{"firstname":"Jade"},那么在beanshell中如何获取并解析? 一般的用 ...
- 小程序 js中获取时间new date()的用法(网络复制过来自用)
js中获取时间new date()的用法 获取时间: 1 var myDate = new Date();//获取系统当前时间 获取特定格式的时间: 1 myDate.getYear(); //获 ...
- Js中获取时间 new date()的用法
Js中获取时间 new date()的用法 获取时间: var myDate = new Date();//获取系统当前时间 myDate.getYear(); //获取当前年份(2位) myDate ...
随机推荐
- Exception in MessageQueue callback: handleReceiveCallback
07-20 14:27:11.477: E/InputEventReceiver(7209): Exception dispatching input event. 07-20 14:27:11.47 ...
- python 学习之Windows 下的编码处理!
问题1: Non-ASCII character '\xe9' in file 问题原因:程序编码上出现问题 解决方法:在程序头部加上代码 #-*- coding: UTF-8 -*- 设置代码编码为 ...
- github--新手使用错误分析
先上去github 或者任意托管的网站.注册账号,新建仓库, 在本地运行Xcode 新建工程,新建工程的时候 勾上本地 的仓库,然后 在本地的项目根目录执行下边的命令: git remote add ...
- 测试linux和window下 jdk最大能使用多大内存
在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息. 发现在linux先 最多用java ...
- 《Orange'S:一个操作系统的实现》笔记(一)
感觉自己对于操作系统始终没有一个清楚的概念,尤其最近困扰于实模式.保护模式以及寻址方式等一些概念.转而一想,所有的程序,最终都是操作的计算机资源,需要和操作系统打交道,所以操作系统有必要深入了解一下. ...
- 深度探索QT窗口系统(五篇)
窗口作为界面编程中最重要的部分,没有窗口就没有界面,是窗口让我们摆脱了DOS时代,按钮是一个窗口,文本框是一个窗口,标签页是一个窗口,...一个窗口可以由多个窗口组成,每天我们都在与窗口打交道,当你打 ...
- Uber到底挣钱不挣钱,听听司机怎么说
“根本不挣钱.”Joel开着他崭新的丰田凯美瑞混合动力车,在硅谷早晨的濛濛细雨中,不无幽怨地说.Joel是一名Uber司机,从坐上他车的那一刻起,他的抱怨便一直没停过:“过去日子还挺好过,一个月靠开U ...
- InnerException 消息是“反序列化对象 属于类型 *** 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。(注意细节)
WEB站点在调用我们WCF服务的时候,只要传入的参数过长,就报如下错误: 格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错: formD ...
- java常用日期函数总结
请记得要引入java.util.Date和java.text.SimpleDateFormat两个包 1.计算某一月份的最大天数 Calendar time=Calendar.getInstance( ...
- C++STL之string (转)
在学习c++STL中的string,在这里做个笔记,以供自己以后翻阅和初学者参考. 1:string对象的定义和初始化以及读写 string s1; 默认构造函数,s1为空串 string ...