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 相关文章推荐
你所要知道JS(DHTML)中的一些技巧
Jan 09 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
Dec 10 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
Jan 24 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
Aug 01 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
Sep 02 Javascript
Vue异步组件使用详解
Apr 08 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
Apr 24 Javascript
zTree节点文字过多的处理方法
Nov 24 Javascript
JS运动改变单物体透明度的方法分析
Jan 23 Javascript
vue2.0项目实现路由跳转的方法详解
Jun 21 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
Aug 13 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
Jul 19 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
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
理解Javascript_10_对象模型
2010/10/16 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
jquery attr方法获取input的checked属性问题
2014/05/26 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
2019/11/25 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
使用Python的PEAK来适配协议的教程
2015/04/14 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
为什么python比较流行
2020/06/19 Python
大学生怎样进行自我评价
2013/12/07 职场文书
幼儿园元旦活动感言
2014/03/02 职场文书
机关搬迁方案
2014/05/18 职场文书
保安辞职信范文
2015/02/28 职场文书
2016年情人节问候语
2015/11/11 职场文书
五年级作文之成长
2019/09/16 职场文书
Pygame Draw绘图函数的具体使用
2021/11/17 Python