Monday 14 March 2016

Add or Update Query String

        location.href = addOrUpdateQueryString(location.href, 'maxPageSize', '50');

        var addOrUpdateQueryString = function(url, name, value) {

        var splitted = url.split('?');
        var base = splitted[0];
        var pairsArray = [];
        var isNew = true;
        if (splitted.length > 1) {
            // it has query string
            var qPairsArray = splitted[1].split('&');
            for (var i = 0; i < qPairsArray.length; i++) {
                var pair = qPairsArray[i].split('=');
                var pairName = pair[0];
                var pairValue = pair[1];
                if (pairName == name) {
                    pairValue = value;
                    isNew = false;
                }
                pairsArray.push({ name: pairName, value: pairValue });
            }
        }

        if (isNew) {
            pairsArray.push({ name: name, value: value });
        }

        return buildUrl(base, pairsArray);
    }

 function buildUrl(base, pairsArray) {
        var newQ = '';
        pairsArray.forEach(function (obj) {
            var thisPair = obj.name + '=' + obj.value;
            newQ = newQ + (newQ == '' ? '' : '&') + thisPair;
        });

        return base + "?" + newQ;
    }