gpt4 book ai didi

javascript - 替换某些参数或整个 URL

转载 作者:行者123 更新时间:2023-12-03 02:21:38 24 4
gpt4 key购买 nike

我需要根据复选框输入将窗口 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);

我的网址末尾有一系列参数,如下所示:

mywebsite.com&site=main&page=1

我需要替换整个 URL,或者仅替换下面的参数:

&site=main&page=1

关键在最后一行。我尝试了一些事情,这是输出:

location.assign(url);location.replace(url); 都给出: mywebsite.com&site=main&page=1&site=main&page=1

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

我不明白的是 location.replace() - 对 reading MDN 上的行为进行健全性检查,它引用:

The Location.replace() method replaces the current resource with the one at the provided URL.

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

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

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

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

为什么不将整个 URL 替换为新 URL?如何将整个 URL 替换为新 URL,或者以某种方式仅定位参数?正则表达式?

最佳答案

为什么不直接构建并设置您想要的 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;

关于javascript - 替换某些参数或整个 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49133237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com