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里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
Dec 20 Javascript
浅析js中2个等号与3个等号的区别
Aug 06 Javascript
jQuery中empty()方法用法实例
Jan 16 Javascript
jquery.validate使用详解
Jun 02 Javascript
Bootstrap基本样式学习笔记之标签(5)
Dec 07 Javascript
JS实现基于拖拽改变物体大小的方法
Jan 23 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
Mar 29 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 Javascript
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
小程序登录之支付宝授权的实现示例
Dec 13 Javascript
在webstorm中配置less的方法详解
Sep 25 Javascript
JS相册图片抖动放大展示效果的示例代码
Jan 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 - Html Transfer Code
2006/10/09 PHP
require(),include(),require_once()和include_once()区别
2008/03/27 PHP
PHP图片自动裁切应付不同尺寸的显示
2014/10/16 PHP
PHP判断浏览器、判断语言代码分享
2015/03/05 PHP
PHP中Array相关函数简介
2016/07/03 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
javascript中的变量是传值还是传址的?
2010/04/19 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
2013/10/15 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
原生js的ajax和解决跨域的jsonp(实例讲解)
2017/10/16 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
Python中if有多个条件处理方法
2020/02/26 Python
keras多显卡训练方式
2020/06/10 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
英国探险旅游专家:Explore
2018/12/20 全球购物
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
金融专业大学生自我评价
2014/01/09 职场文书
高二历史教学反思
2014/01/25 职场文书
党员批评与自我批评
2014/02/12 职场文书
宪法宣传周工作方案
2014/05/26 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
涨价通知怎么写
2015/04/23 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL