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 相关文章推荐
javascript数组使用调用方法汇总
Dec 08 Javascript
Jquery 设置标题的自动翻转
Oct 03 Javascript
jquery与google map api结合使用 控件,监听器
Mar 04 Javascript
轻量级 JS ToolTip提示效果
Jul 20 Javascript
javascript中的作用域scope介绍
Dec 28 Javascript
js作用域及作用域链概念理解及使用
Apr 15 Javascript
js实现常见的工具条效果
Mar 02 Javascript
原生js实现瀑布流布局
Mar 08 Javascript
import与export在node.js中的使用详解
Sep 28 Javascript
vue+webpack实现异步组件加载的方法
Feb 03 Javascript
vue-prop父组件向子组件进行传值的方法
Mar 01 Javascript
微信小程序实现保存图片到相册功能
Nov 30 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中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
js获取元素在浏览器中的绝对位置
2010/07/24 Javascript
js 函数的副作用分析
2011/08/23 Javascript
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
字符串反转_JavaScript
2016/04/28 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
Angular 4.0学习教程之架构详解
2017/09/12 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
详解vue中this.$emit()的返回值是什么
2019/04/07 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
微信跳一跳辅助python代码实现
2018/01/05 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
使用Tensorflow实现可视化中间层和卷积层
2020/01/24 Python
Django xadmin安装及使用详解
2020/10/26 Python
Python中过滤字符串列表的方法
2020/12/22 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
《老王》教学反思
2014/02/23 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
小学生2014国庆节演讲稿:祖国在我心中
2014/09/21 职场文书
监考失职检讨书
2015/01/26 职场文书
使用Springboot实现健身房管理系统
2021/07/01 Java/Android