在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 ...
随机推荐
- nginx+php的配置
作了N多次php环境的搭建,网上的方法还真是多,但是实际操作起来总有一些大大小小的出入,很多错误经常让我纠结不已.久病成医,渐渐地我自己就总结出了一些经验.自我感觉良好. 这种方法并非以前所流行的ap ...
- HDU 4498 Function Curve (分段, simpson)
转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove 最近太逗了...感觉成都要打铁了...只能给队友端 ...
- CodeForces 22C System Administrator
把v和2结点交换, 1和v连,其它点和v之间能够互相连. #include <iostream> #include <cstdlib> #include <cstring ...
- BaseAdapter使listview设置不同背景图片并添加selector
前段时间为了实现根据item不同的内容实现不同的背景色google了好久只找到了个隔行换色,通过自定义SimpleAdapter终于实现了此功能,但是定义了selector并没有触发点击效果.今天重新 ...
- Android 手势锁的实现 为了让自己的应用程序的安全,现在
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/36236113 今天偶遇以github上gesturelock关于手势锁的一个样例 ...
- DICOM医学图像处理:DCMTK在VS2012中的配置
背景: 近期因为项目须要,将原本的开发IDE环境由VS2008升级到了VS2012.本以为编译完毕后的DCMTK开源库能够直接从VS2008移植到VS2012.可是通过项目属性加入完包括文件夹和依赖库 ...
- 汉字转拼音的vc++程序源代码
#include "StdAfx.h" #include "MyChiToLetter.h" // Download by http://www.codefan ...
- 浅谈Servlet读取Html参数
1首先:webApp名称为cookieAndsession.html文件一般放在WebRoot文件夹下:/cookieAndsession/WebRoot/OrderForm.html,那么外界要访问 ...
- MFC下DLL编程(图解)
DLL(Dynamic Link Library,动态链接库)是微软公司为Windows和OS/2操作系统设计一种供应用程序在运行时调用的共享函数库.DLL是应用程序的一种扩展,也是软件共享和重用的传 ...
- pthread 简要使用指南
http://www.2cto.com/kf/201208/151995.html http://www.2cto.com/kf/201208/151997.html