jQuery - 自动添加查询字符串参数

时间:2015-05-26 08:56:40

标签: jquery url query-string

我需要一个自动添加到我网站上所有页面的ffv查询字符串参数的脚本,如下例所示:

mywebsite.com?ffv

mywebsite.com/page?ffv

mywebsite.com/basket?ffv

2 个答案:

答案 0 :(得分:0)

网址为 - https://mywebsite.com/path?ffv#hash

http[s]:// - protocol <br>
mywebsite.com - domain <br>
/path - path <br> 
?ffv - query string <br>
\#value - hash

如果您需要更改查询字符串,请尝试使用JavaScript window.location对象 对于更改查询:

function replace_search(value) {

    "use strict";

    if (typeof value === 'string' || typeof value === 'number') {
        window.location.search = value;
    }

}
页面上的

u cat使用onclick事件进行手动更改:

    <button onclick="replace_search('query')">got to query</button>

答案 1 :(得分:0)

使用提供的解决方案herehere(稍加调整),您可以获取查询字符串值并进行更改。

从此开始,您可以使用以下代码执行所需操作:

//This allows you to read the query string
(function($) {
    $.QueryString = (function(a) {
        if (a == "") return {};
        var b = {};
        for (var i = 0; i < a.length; ++i)
        {
            var p=a[i].split('=');
            if (p.length != 2) continue;
            b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
        }
        return b;
    })(window.location.search.substr(1).split('&'))
})(jQuery);

(function(){
    //This allows you to set the query string parameters
    function updateQueryStringParameter(uri, key, value) {
        var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
        var separator = uri.indexOf('?') !== -1 ? "&" : "?";
        if (uri.match(re)) {
            return uri.replace(re, '$1' + key + ( (value !=  '' ) ? "=" + value : "") + '$2');
        }
        else {
            return uri + separator + key + ( (value !=  '' ) ? "=" + value : "");
        }
    }

    // When you load the page, you check if the query string doesn't contain "ffv"
    if(typeof $.QueryString["ffv"] == "undefined") {
        //If it doesn't, you add it
        window.location.href = updateQueryStringParameter(window.location.href,'ffv','');
    }
})();

在添加ffv之前,您需要先检查{{1}}是否已设置,以避免循环。