Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换某些参数或整个URL_Javascript - Fatal编程技术网

Javascript 替换某些参数或整个URL

Javascript 替换某些参数或整个URL,javascript,Javascript,我需要根据复选框输入将窗口URL替换为新的URL。我试着这样做: // get checkbox value var selection = $('input[type="checkbox"]:checked').val() // get current url var url = window.location.href; // prefix current URL with checkbox url += '&site=' + sel

我需要根据复选框输入将窗口URL替换为新的URL。我试着这样做:

    // get checkbox value
    var selection = $('input[type="checkbox"]:checked').val()
    // get current url
    var url = window.location.href;
    // prefix current URL with checkbox 
    url += '&site=' + selection + '&page=1';
    // debug line
    // console.log(url);
    // navigate to new URL
    location.replace(url);
我的URL末尾有一系列参数,如下所示:

mywebsite.com&site=main&page=1

我需要替换整个URL,或者只替换以下参数:

&site=main&page=1

钥匙在最后一行。我尝试了一些方法这是输出:

location.assign(url)
位置.替换(url)给出:
mywebsite.com&site=main&page=1&site=main&page=1

window.location.href()
似乎具有相同的行为,它不会替换整个URL

我不明白的是关于
location.replace()
-检查上的行为是否正常,它引用了:

Location.replace()方法将当前资源替换为 一个位于提供的URL

好的,我们开始吧。然后发生这种情况:


http://mywebsite.com&site=main&page=1&site=main&page=1

在控制台日志中,它返回正确的URL参数。因此,我的控制台中的输出如下所示:


http://mywebsite.com&site=main&page=1


为什么不用新的URL替换整个URL?如何用一个新的URL替换整个URL,或者以参数为目标?Regex?

为什么不直接构建您想要的URL并设置它呢

var url = 'http://mywebsite.com?site=' + selection + '&page=1';
location.href = url;
如果您不知道自己所处的页面是动态的,您可以:

var hostAndPath = location.host + location.pathname;
var selection = $('input[type="checkbox"]:checked').val();
var url = hostAndPath + '?site=' + selection + '&page=1';
location.href = url;

http://mywebsite.com&site=main&page=1
不是有效的URL,第一个
&
应该是
第一个是我想做的,但我想尝试编写一些既适用于本地主机又适用于域的内容。让我来讨论一下你的第二个建议。