封裝一個強大的追加或更新多個Query引數並自動重新整理的JS方法,附加Query引數獲取

小松聊PHP进阶發表於2024-06-08
    /**
     * @function 重新設定url query引數,如果鍵名存在則更新,如果不存在則新增
     * @param    object 鍵值對
     * @returns  string
     */
    function updateUrlQueryData(data) {
        var url = new URL(window.location.href);
        for (let k in data) {
            var val = url.searchParams.get(k);
            if (val != data[k]) {
                url.searchParams.set(k, data[k]);
                location.href = url.toString();
            }
        }
    }


    /**
     * @function 獲取url引數,若獲取不到,返回引數2
     * @param    key           string 鍵名
     * @param    default_value *      預設值
     * @returns {*|string}
     */
    function getQueryData(key, default_value = null) {
        var val = new URL(window.location.href).searchParams.get(key);
        if(val === null) {
            return default_value === null ? val : default_value;
        }
        return val;
    }


    updateUrlQueryData({k: 'v', key: 'val'});
    alert(getQueryData('k', 'vvv'));

相關文章