JavaScript操作Url方法版

来源:互联网 发布:mac safari历史记录 编辑:程序博客网 时间:2024/06/05 16:24
/** *  URL地址栏操作方法 * @author     XiaZhicong <dht1986xia@qq.com> *///返回当前URL $_GET对象, 仿PHP模式用法 $_GET['keyword']var $_GET = (function(){    var url = window.document.location.href.toString();    var u = url.split("?");    if(typeof(u[1]) == "string"){        u = u[1].split("&");        var get = {};        $.each(u,function (index,value) {            var j = value.split("=");            get[j[0]] = j[1];        });        return get;    } else {        return {};    }})();/** * URL增加参数 * @param url    url 地址 * @param name   参数名称 * @param value  参数值 * @param type   int,0,没有参数部分,1,已有参数部分 * @constructor */function AddUrlParam(url,name,value) {    var newUrl=url;    if(newUrl.indexOf('?')>-1 || newUrl.indexOf('&')>-1){        //url存在参数部分        var Separator='&';    }else{        //url不带参数部分        var Separator='?';    };    if(url.indexOf('#')>-1){        //url中存在书签        newUrl=newUrl.replace('#', Separator+name+'='+value+'#');    }else{        //不存在书签        newUrl=newUrl+Separator+name+"="+value;    }    return newUrl;}/** * 删除Url参数 * @param url   给定URL地址 * @param name  删除的参数名 * @returns {*} */function DelUrlParam(url, name){    var delparam = '';    var analysisUrl = url.split("?");    if(typeof(analysisUrl[1]) == "string"){        analysisUrl = analysisUrl[1];        if(analysisUrl.indexOf('#') > -1){            //url中存在书签            analysisUrl = analysisUrl.split("#");            analysisUrl = analysisUrl[0]        }        if (analysisUrl.indexOf(name)> -1) {            var paramArr = analysisUrl.split("&");            for (var i = 0; i < paramArr.length; i++) {                var cparam = paramArr[i].split("=");                if(cparam[0] === name){                    delparam = paramArr[i];                    if(paramArr.length == 1){                        //只有一个参数                        delparam = '?'+delparam;                    }else{                        if(i > 0){                            //非第一个参数                            delparam = '&'+delparam;                        }else{                            //第一个参数                            delparam = delparam + '&';                        }                    }                    break;                }            }            url = url.replace(delparam, '');        }    }    return url;}/** * 改变URL参数值[正则方式] * @param url   URL * @param arg   需更新的参数名 * @param arg_val   新的参数值 */function changeURLpar(url,arg,arg_val){    var pattern=arg+'=([^&]*)';    var replaceText=arg+'='+arg_val;    if(url.match(pattern)){        var tmp='/('+ arg+'=)([^&]*)/gi';        tmp=url.replace(eval(tmp),replaceText);        return tmp;    }else{        if(url.match('[\?]')){            return url+'&'+replaceText;        }else{            return url+'?'+replaceText;        }    }    return url+'\n'+arg+'\n'+arg_val;}/** * 更改Url参数值 * @param url   URL * @param name  参数名称 * @param value 新参数值 * @returns {*} */function changeURLparam(url,name,value){    var oldParam = ''        ,newParam = '';    var analysisUrl = url.split("?");    if(typeof(analysisUrl[1]) == "string"){        analysisUrl = analysisUrl[1];        if(analysisUrl.indexOf('#') > -1){            //url中存在书签            analysisUrl = analysisUrl.split("#");            analysisUrl = analysisUrl[0]        }        if (analysisUrl.indexOf(name)> -1) {            var paramArr = analysisUrl.split("&");            for (var i = 0; i < paramArr.length; i++) {                var cparam = paramArr[i].split("=");                if(cparam[0] === name){                    oldParam = paramArr[i];                    if(i > 0){                        //非第一个参数                        oldParam = '&'+oldParam;                        newParam = '&'+name +'='+value;                    }else{                        //第一个参数                        oldParam = '?'+oldParam;                        newParam = '?'+name +'='+value;                    }                    break;                }            }            url = url.replace(oldParam, newParam);        }    }    return url;}/** * 删除Url中锚点部分 * @param url * @param anchorName * @returns {*} */function delChainlink(url,anchorName){    //判断是否有定位    if(url.indexOf("#") > 0) {        url = url.replace('#'+ anchorName, '');    }    return url;}
原创粉丝点击