js获取url参数代码实例分享(JS操作URL)


Posted in Javascript onDecember 13, 2013

代码很简单,主要一个思路是把url参数解析为js对象,再做增、删、改、查操作就很方便了~,这里做笔记。

var LG=(function(lg){
    var objURL=function(url){
        this.ourl=url||window.location.href;
        this.href="";//?前面部分
        this.params={};//url参数对象
        this.jing="";//#及后面部分
        this.init();
    }
    //分析url,得到?前面存入this.href,参数解析为this.params对象,#号及后面存入this.jing
    objURL.prototype.init=function(){
        var str=this.ourl;
        var index=str.indexOf("#");
        if(index>0){
            this.jing=str.substr(index);
            str=str.substring(0,index);
        }
        index=str.indexOf("?");
        if(index>0){
            this.href=str.substring(0,index);
            str=str.substr(index+1);
            var parts=str.split("&");
            for(var i=0;i<parts.length;i++){
                var kv=parts[0].split("=");
                this.params[kv[0]]=kv[1];
            }
        }
        else{
            this.href=this.ourl;
            this.params={};
        }
    }
    //只是修改this.params
    objURL.prototype.set=function(key,val){
        this.params[key]=val;
    }
    //只是设置this.params
    objURL.prototype.remove=function(key){
        this.params[key]=undefined;
    }
    //根据三部分组成操作后的url
    objURL.prototype.url=function(){
        var strurl=this.href;
        var objps=[];//这里用数组组织,再做join操作
        for(var k in this.params){
            if(this.params[k]){
                objps.push(k+"="+this.params[k]);
            }
        }
        if(objps.length>0){
            strurl+="?"+objps.join("&");
        }
        if(this.jing.length>0){
            strurl+=this.jing;
        }
        return strurl;
    }
    //得到参数值
    objURL.prototype.get=function(key){
        return this.params[key];
    }    
    lg.URL=objURL;
    return lg;
}(LG||{}));

LG只是我个人共同JS的名称空间,无他。调用:

var myurl=new LG.URL("http://www.baidu.com?a=1");    myurl.set("b","hello"); //添加了b=hello
    alert (myurl.url());
    myurl.remove("b"); //删除了b
    alert(myurl.get ("a"));//取参数a的值,这里得到1
    myurl.set("a",23); //修改a的值为23
    alert (myurl.url());
Javascript 相关文章推荐
子窗口、父窗口和Silverlight之间的相互调用
Aug 16 Javascript
js实时获取系统当前时间实例代码
Jun 28 Javascript
JavaScript实现生成GUID(全局统一标识符)
Sep 05 Javascript
在Node.js中使用HTTP上传文件的方法
Jun 23 Javascript
第四章之BootStrap表单与图片
Apr 25 Javascript
使用jQuery判断浏览器滚动条位置的方法
May 30 Javascript
JS实现淡入淡出图片效果的方法分析
Dec 20 Javascript
RequireJS 依赖关系的实例(推荐)
Jan 21 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
Mar 12 Javascript
node app 打包工具pkg的具体使用
Jan 17 Javascript
细述Javascript的加法运算符的具体使用
Oct 18 Javascript
微信小程序点击item使之滚动到屏幕中间位置
Mar 25 Javascript
js获取html页面节点方法(递归方式)
Dec 13 #Javascript
jquery 合并内容相同的单元格(示例代码)
Dec 13 #Javascript
javascript读取xml实现javascript分页
Dec 13 #Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
Dec 13 #Javascript
javascript分页代码实例分享(js分页)
Dec 13 #Javascript
jquery 操作iframe的几种方法总结
Dec 13 #Javascript
异步动态加载JS并运行(示例代码)
Dec 13 #Javascript
You might like
哪吒敖丙传:新人物二哥敖乙出场 小敖丙奶气十足
2020/03/08 国漫
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
扩展你的 PHP 之入门篇
2006/12/04 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
php批量删除cookie的简单实现方法
2015/01/26 PHP
php实现汉字验证码和算式验证码的方法
2015/03/07 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
JS实现清除指定cookies的方法
2014/09/20 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
Vue自定义指令写法与个人理解
2019/02/09 Javascript
微信小程序视图控件与bindtap之间的问题的解决
2019/04/08 Javascript
使用js在layui中实现上传图片压缩
2019/06/18 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
python定时器使用示例分享
2014/02/16 Python
Python 中 Meta Classes详解
2016/02/13 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
企业标语大全
2014/07/01 职场文书
经济贸易系求职信
2014/08/04 职场文书
客房服务员岗位职责
2015/02/09 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS
CSS SandBox应用场景及常见问题
2022/06/25 HTML / CSS