封装一个强大的追加或更新多个Query参数并自动刷新的JS方法,附加Query参数获取

    /**
     * @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'));
posted @   小松聊PHP进阶  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示