Javascript 替换某些参数或整个URL
我需要根据复选框输入将窗口URL替换为新的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
// 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,第一个&
应该是?
第一个是我想做的,但我想尝试编写一些既适用于本地主机又适用于域的内容。让我来讨论一下你的第二个建议。