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图片延迟加载 前端开发技能必备系列
Jun 18 Javascript
Javascript实现页面跳转的几种方式分享
Oct 26 Javascript
Jquery通过JSON字符串创建JSON对象
Aug 24 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
May 06 Javascript
在JavaScript中处理字符串之link()方法的使用
Jun 08 Javascript
javascript中sort排序实例详解
Jul 24 Javascript
javascript验证香港身份证的格式或真实性
Feb 07 Javascript
浅谈Vue.js中的v-on(事件处理)
Sep 05 Javascript
详解create-react-app 自定义 eslint 配置
Jun 07 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
Apr 11 Javascript
转换layUI的数据表格中的日期格式方法
Sep 19 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代码运行时间查看类代码分享
2011/08/06 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
2019/09/29 PHP
在js中使用&quot;with&quot;语句中跨frame的变量引用问题
2007/03/08 Javascript
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
javascript forEach通用循环遍历方法
2010/10/11 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
2017/01/23 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
JavaScript事件对象event用法分析
2018/07/27 Javascript
如何通过shell脚本自动生成vue文件详解
2019/09/10 Javascript
JavaScript 装逼指南(js另类写法)
2020/05/10 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
python 执行终端/控制台命令的例子
2019/07/12 Python
python 实现目录复制的三种小结
2019/12/04 Python
Python新手如何理解循环加载模块
2020/05/29 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
安装并免费使用Pycharm专业版(学生/教师)
2020/09/24 Python
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
2014年初一班主任工作总结
2014/11/08 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
单位政审意见范文
2015/06/04 职场文书
入党宣誓仪式主持词
2015/06/29 职场文书
初中班长竞选稿
2015/11/20 职场文书