Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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_Jquery - Fatal编程技术网

Javascript 在页面加载时更改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

我想将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");

请尝试以下功能:

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);