/**
* 获取URL中参数的值
*
* 例子:http://abc.com?action=update&id=987654321789
* var action = getUrlParam("action"); //返回action的值为"update"
*
* @Param: name: 要获取的参数名字
* @param: _location:可选参数,页面的URL,在弹出窗口中使用
* @return:返回参数的值
*/
var getUrlParam = function (name, _location)
{
var _location_url = _location
|| window.
location.
search;
//window.location.search:URL中问号及其后面的内容
var reg = new RegExp(
"(^|&)" + name
+ "=([^&]*)(&|$)");
//构造一个含有目标参数的正则表达式对象
var r = _location_url.
substr(1).
match(
reg);
//匹配目标参数
//返回参数值
if (
r != null)
return decodeURIComponent(
r[2
]);
return null;
};
/**
* 设置url参数
* @param name
* 参数名称
* @param value
* 参数值
* @param _location
* 可选参数,替换的URL
* @returns {XML|*|string|{by}|void}
*/
var changeUrlParam = function (name, value, _location)
{
var url = _location
|| window.
location.
href;
var reg = eval(
'/(' + name
+ '=)([^&]*)/gi');
return url.
replace(
reg, name
+ '=' + value);
};
/**
* 删除url指定名称的参数
* @param name
* 参数名称
* @param _location
* 可选参数,替换的URL
* @returns {XML|*|string|{by}|void}
*/
var delUrlParam = function (name, _location)
{
var url = _location
|| window.
location.
href;
var reg = eval(
'/(' + name
+ '=)([^&]*)/gi');
return url.
replace(
reg,
"");
};
/**
* 添加url指定名称的参数
* @param name
* 参数名称
* @param value
* 参数值
* @param _location
* 可选参数,替换的URL
* @returns {string}
*/
var addUrlParam = function (name, value, _location)
{
var currentUrl = _location
|| window.
location.
href;
if (
/\?/g.
test(
currentUrl))
{
if (
/name=[-\w]{4,25}/g.
test(
currentUrl))
{
currentUrl = currentUrl.
replace(
/name=[-\w]{4,25}/g, name
+ "=" + value);
} else {
currentUrl += "&" + name
+ "=" + value;
}
} else {
currentUrl += "?" + name
+ "=" + value;
}
return currentUrl;
};
/**
* 设置histroy状态
*
* @param title
* @param url
*/
var historyPushState = function (title, url)
{
if (
history.
pushState && isNotBank(title)
&& isNotBank(url))
{
document.
title = title;
history.
pushState(
{title: title
}, title, url);
}
};
转载请注明原文地址: https://www.6miu.com/read-24855.html