关于前端url参数移除日志

71 阅读1分钟

关于前端url参数移除日志

代码如下:

function replaceParamVal(url, paramName, val) {
    var urlParts = url.split('?');
    var queryParams = urlParts[1].split('&');
    var newParams = [];
    for (var i = 0; i < queryParams.length; i++) {
        var param = queryParams[i].split('=');
        if (param[0] != paramName) {
            newParams.push(param[0] + '=' + param[1]);
        }
    }
    if (val) {
        newParams.push(paramName + '=' + val);
    }
    if (newParams.length > 0) {
        return urlParts[0] + '?' + newParams.join('&');
    } else {
        return urlParts[0];
    }
}

$("#showHasStock").change(function () {
    if ($(this).prop("checked")) {
        var href = location.href;
        if (href.indexOf("?") != -1) {
            if (href.indexOf("hasStock") != -1) {
                window.location.href = replaceParamVal(href, "hasStock", 1);
            } else {
                window.location.href = href + "&hasStock=1";
            }

        } else {
            window.location.href = href + "?hasStock=1";
        }
    } else {
        // Remove hasStock parameter
        var href = location.href;
        if (href.indexOf("?") != -1) {
            if (href.indexOf("hasStock") != -1) {
                window.location.href = replaceParamVal(href, "hasStock", null);
            }
        }
    }
    return false;
})

如上代码测试可将checkbox选中的值添加或者移除出url 如上仅作参考以及记录