使用js修改url地址参数并修改url地址

注: 微信小程序和公众号内屏蔽了  eval() 函数,需要用其他方法解决

修改浏览器地址参数:

function changeURLArg(url,arg,arg_val){
    var pattern=arg+'=([^&]*)';
    var replaceText=arg+'='+arg_val; 
    if(url.match(pattern)){
        var tmp='/('+ arg+'=)([^&]*)/gi';
        tmp=url.replace(eval(tmp),replaceText);
        return tmp;
    }else{ 
        if(url.match('[\?]')){ 
            return url+'&'+replaceText; 
        }else{ 
            return url+'?'+replaceText; 
        } 
    }
}

/**
 * 获取url里的参数
 * @param arg 参数名
 * @returns
 */
function getURLString(arg) { 
    var reg = new RegExp("(^|&)" + arg + "=([^&]*)(&|$)", "i"); 
    var r = window.location.search.substr(1).match(reg); 
    if (r != null) 
        return unescape(r[2]);
    return null; 
} 
//调用结果如下: 
var url = window.location.href; 
changeURLArg(url, "id", 99); // http://www.csdn.com/?id=99&ttt=3 
changeURLArg(url, "haha", 33); // http://www.csdn.com/?id=99&ttt=3&haha=33

读取URL中的参数、修改URL参数、动态修改URL replaceState js代码

修改浏览器地址:

浏览器窗口有一个history对象,用来保存浏览历史。

检查浏览器是否支持 
if (window.history){ 
// 支持History API 
} else { 
// 不支持 
}

history对象提供了一系列方法,允许在浏览历史之间移动。

其中包括 
history.back(); 回退
history.forward(); 前进
history.go(0)//刷新当前页面;

HTML5为history对象添加了两个新方法,history.pushState()和history.replaceState(),用来在浏览历史中添加和修改记录。

都会改变浏览器标签栏中的URL值,区别在于pushState()会将之前的地址记录在history对象中,通过back()可以返回前一页,replaceState()则不能返回

转:

https://blog.csdn.net/weixin_34240657/article/details/92264873

https://blog.csdn.net/WuLex/article/details/89194384

https://blog.csdn.net/WuLex/article/details/89204850

修改 浏览器 地址 https://blog.csdn.net/baiyan_er/article/details/80901553

https://www.cnblogs.com/lbcxq/p/11842713.html

猜你喜欢

转载自www.cnblogs.com/fps2tao/p/12365470.html