SOURCE

function parseURL(url){
    url = url || window.location.href;
    let splitUrl = url.split('?');
    const [ link, params ] = splitUrl;
    // 或者直接使用location.search,获取?后面的参数
    if(params){
        let result = { url: link };
        let _params = params.split("&");
        _params.forEach(item => {
            const [ key, value ] = item.split("=");
            // encodeURIComponent和decodeURIComponent可以编码和解码URI特殊字符(如#,/,¥等),而decodeURI则不能。
            // encodeURI 和 decodeURI对URI的特殊字符是没有编码和解码能力的,实际项目中我们一般需要get请求的方式在地址栏中拼接一些参数,但是参数中如果出现#,/,&这些字符,就必须要用decodeURIComponent了.
            result[key] = decodeURIComponent(value);
        });
        return result;
    }else{
        return {};
    }
}
let testStr = "http://10.10.18.81/nccloud/resources/workbench/public/common/main/index.html#/ifr?page=10160501-10160501APPROVE";
console.log(parseURL(testStr));
console 命令行工具 X clear

                    
>
console