Javascript 在页面加载时更改URL参数
我想将URL中的第三个参数更改为动态变量 如果我的URL是Javascript 在页面加载时更改URL参数,javascript,jquery,Javascript,Jquery,我想将URL中的第三个参数更改为动态变量 如果我的URL是http://example.com/A/B/Fixed_var_C然后我希望将其更改为http://example.com/A/B/Dynamic_C 在页面加载时,如何通过JQuery或javascript实现这一点 我尝试了一些方法,但没有成功。以下是其中一种方法: window.history.pushState("object or string", "Title", "/new-url"); 请尝试以下功能: functio
http://example.com/A/B/Fixed_var_C
然后我希望将其更改为http://example.com/A/B/Dynamic_C
在页面加载时,如何通过JQuery或javascript实现这一点
我尝试了一些方法,但没有成功。以下是其中一种方法:
window.history.pushState("object or string", "Title", "/new-url");
请尝试以下功能:
function UpdateQueryString(key, value, url) {
if (!url) url = window.location.href;
var re = new RegExp("([?&])" + key + "=.*?(&|#|$)(.*)", "gi"),
hash;
if (re.test(url)) {
if (typeof value !== 'undefined' && value !== null)
return url.replace(re, '$1' + key + "=" + value + '$2$3');
else {
hash = url.split('#');
url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, '');
if (typeof hash[1] !== 'undefined' && hash[1] !== null)
url += '#' + hash[1];
return url;
}
}
else {
if (typeof value !== 'undefined' && value !== null) {
var separator = url.indexOf('?') !== -1 ? '&' : '?';
hash = url.split('#');
url = hash[0] + separator + key + '=' + value;
if (typeof hash[1] !== 'undefined' && hash[1] !== null)
url += '#' + hash[1];
return url;
}
else
return url;
}
}
当用户点击“刷新”时会发生什么?如果URL发生了一次更改,那么它真的很重要吗?该方法应该可以工作。它很重要,因为新的服务器请求将被发送到
http://example.com/A/B/Dynamic_C
但Dynamic_C仅用于展示目的。我没有根据这个参数获取任何内容这看起来很好,但我如何在地址栏中传递这个内容而不重新加载页面,但它会重新加载页面,然后你所说的重新加载页面,然后重新加载页面是什么意思。。。我不想重新加载页面,URL将在不发出其他请求的情况下更新。在这个函数中,他在哪里传递了值?我没有得到你的问题。这个函数显然接受3个参数——key、value和url。他已经有了一个类似url的参数,并且他想更改它,所有数据都应该作为url、value和key传递给你的函数
url = "http://example.com/A/B/Fixed_var_C";
url = url.substr(0,url.lastIndexOf('/'))+"/Dynamic_C";
alert(url);