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 相关文章推荐
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
Jan 10 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
jQuery使用数组编写图片无缝向左滚动
Dec 11 Javascript
js 得到文件后缀(通过正则实现)
Jul 08 Javascript
JQuery中操作Css样式的方法
Feb 12 Javascript
javascript模拟C#格式化字符串
Aug 26 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
Apr 14 Javascript
使用plupload自定义参数实现多文件上传
Jul 19 Javascript
简单谈谈gulp-changed插件
Feb 21 Javascript
Vue.use源码分析
Apr 22 Javascript
js仿360开机效果
Dec 26 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的Yii框架中cookie和session功能的相关操作
2016/03/17 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
phpinfo的知识点总结
2019/10/10 PHP
SWFObject Flash js调用类
2008/07/08 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
2017/08/18 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
jQuery图片缩放插件smartZoom使用实例详解
2017/08/25 jQuery
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python os模块介绍
2014/11/30 Python
python运行时间的几种方法
2016/06/17 Python
python实现多线程端口扫描
2019/08/31 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
美国购车网站:TrueCar
2016/10/19 全球购物
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
delegate与普通函数的区别
2014/01/22 面试题
应届大学生求职的自我评价
2013/11/17 职场文书
老总助理工作岗位职责
2014/02/06 职场文书
大学生简短的自我评价分享
2014/02/20 职场文书
文明寝室申报材料
2014/05/12 职场文书
英语感谢信范文
2015/01/20 职场文书
小学教师岗位职责
2015/04/02 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android