我需要根据复选框输入替换一个新的窗口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);
我的网址末尾有一系列参数,如下所示:
mywebsite.com&site=main&page=1
我要么需要替换整个网址,要么只需以下参数:
&安培;站点=主&安培;页= 1
关键是在最后一行。我尝试了一些这样的输出:
location.assign(url);
和location.replace(url);
都提供:mywebsite.com&site=main&page=1&site=main&page=1
window.location.href()
似乎有相同的行为,它不会取代整个网址。
我不明白的是location.replace()
- 完整性检查reading MDN上的行为,引用:
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,或者只是以某种方式定位参数?正则表达式?
答案 0 :(得分:1)
为什么不构建您想要的URL并设置它?
var hostAndPath = location.host + location.pathname;
var selection = $('input[type="checkbox"]:checked').val();
var url = hostAndPath + '?site=' + selection + '&page=1';
location.href = url;
如果你不知道你所在的页面是什么,那将是动态的,你可以这样做:
<!-- @@Formula:
return (issue.getSeverity() * issue.getPriority())
-->