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 toggle使用分析
Nov 16 Javascript
jQuery 版元素拖拽原型代码
Apr 25 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
Feb 05 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
Mar 04 Javascript
纯js实现重发验证码按钮倒数功能
Apr 21 Javascript
浅谈js里面的InttoStr和StrtoInt
Jun 14 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
Jan 13 Javascript
vue 实现在函数中触发路由跳转的示例
Sep 01 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
Jan 27 jQuery
微信小程序顶部导航栏可滑动并选中放大
Dec 05 Javascript
用jQuery实现抽奖程序
Apr 12 jQuery
浅析vue中的nextTick
Dec 28 Vue.js
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
模拟flock实现文件锁定
2007/02/14 PHP
检查php文件中是否含有bom的函数
2012/05/31 PHP
ThinkPHP提交表单时默认自动转义的解决方法
2014/11/25 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
JS 巧妙获取剪贴板数据 Excel数据的粘贴
2009/07/09 Javascript
IE iframe的onload方法分析小结
2010/01/07 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
jQuery动态添加
2016/04/07 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
Python中zip()函数用法实例教程
2014/07/31 Python
Python实现的爬取网易动态评论操作示例
2018/06/06 Python
Python魔法方法功能与用法简介
2019/04/04 Python
pyqt5 使用cv2 显示图片,摄像头的实例
2019/06/27 Python
python内存监控工具memory_profiler和guppy的用法详解
2019/07/29 Python
python ubplot使用方法解析
2020/01/10 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
Python扫描端口的实现
2021/01/25 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
深入CSS3 动画效果的总结详解
2013/05/09 HTML / CSS
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
internal修饰符起什么作用
2013/12/16 面试题
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
英语老师推荐信
2014/02/26 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
禁毒主题班会教案
2015/08/14 职场文书
为什么不建议在go项目中使用init()
2021/04/12 Golang
Go语言安装并操作redis的go-redis库
2022/04/14 Golang