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 相关文章推荐
自动设置iframe大小的jQuery代码
Sep 11 Javascript
JavaScript实现鼠标点击后层展开效果的方法
May 13 Javascript
jquery判断复选框选中状态以及区分attr和prop
Dec 18 Javascript
JavaScript开发者必备的10个Sublime Text插件
Feb 27 Javascript
基于vue-resource jsonp跨域问题的解决方法
Feb 03 Javascript
详解小程序缓存插件(mrc)
Aug 17 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
Jun 17 Javascript
Vue学习之组件用法实例详解
Jan 06 Javascript
Vue组件基础用法详解
Feb 05 Javascript
Vue 封装防刷新考试倒计时组件的实现
Jun 05 Javascript
JavaScript实现显示和隐藏图片
Apr 29 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者的疑难问答(1)
2006/10/09 PHP
探讨各种PHP字符串函数的总结分析
2013/06/05 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
理解JavaScript的prototype属性
2012/02/11 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
2018/02/10 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
Python 代码性能优化技巧分享
2012/08/07 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
python计算二维矩形IOU实例
2020/01/18 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
CSS3中文字镂空、透明值、阴影效果设置示例小结
2016/03/07 HTML / CSS
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
Gap英国官网:Gap UK
2018/07/18 全球购物
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
庆元旦迎新年广播稿
2014/02/18 职场文书
追悼会主持词
2014/03/20 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书
员工安全责任协议书
2016/03/22 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python