开发公司最近做项目,开发公司发现之前搞的replaceParamVal()方法有bug,重新修改后,应该完美了。
上代码
//URL替换指定传入参数的值,paramName为参数,replaceWith为新值,isRefresh为是否刷新页面,0表示不需要刷新,这个最牛
举例:
上面这个地址js调用方法:replaceParamVal("popenid","600",0),就会在地址栏上修改参数popenid=600,不会刷新页面,新地址变为:
//调用方法:replaceParamVal("puid","600",1),表示在地址栏上修改成正确的参数puid=600,然后刷新页面
function replaceParamVal(paramName, replaceWith, isRefresh) {
var oUrl = this.location.href.toString();
if (paramName && replaceWith) {
if (oUrl.indexOf(paramName + "=" + replaceWith) > 1) {
return;
}
}
if (oUrl.indexOf('&'+paramName+'=') > 0) {
var re = eval('/(&' + paramName + '=)([^&]*)/gi');
var nUrl = oUrl.replace(re, '&'+paramName + '=' + replaceWith);
} else {
if (oUrl.indexOf("?") > 0) {
var nUrl = oUrl + "&" + paramName + "=" + replaceWith;
} else {
var nUrl = oUrl + "?" + paramName + "=" + replaceWith;
}
}
// this.location = nUrl;
if (isRefresh) {
window.location.href = nUrl
}
var stateObject = { id: "" };
var title = "";
history.replaceState(stateObject, title, nUrl);
}