Javascript操作URL函数修改版


Posted in Javascript onNovember 07, 2013

总结了一些方法,把它压缩成了一个函数对象,只有几十行代码,使用方法简单明了
存为ojbUrl.js

/* 
说明:本代码可自由复制修改并且使用,但请保留作者信息!
Author: Kevin  WebSite: http://iulog.com/  QQ:251378427
JS 操作 URL 函数使用说明:
初始化 var myurl=new objURL(); //也可以自定义URL: var myurl=new objURL('https://3water.com'); 
读取url参数值 var val=myurl.get('abc'); // 读取参数abc的值
设置url参数 myurl.set("arg",data); // 新增/修改 一个arg参数的值为data
移除url参数 myurl.remove("arg"); //移除arg参数
获取处理后的URL myurl.url();//一般就直接执行转跳 location.href=myurl.url();
调试接口:myurl.debug(); //修改该函数进行调试
 */
function objURL(url){
 var ourl=url||window.location.href;
 var href="";//?前面部分
 var params={};//url参数对象
 var jing="";//#及后面部分
 var init=function(){
  var str=ourl;
  var index=str.indexOf("#");
  if(index>0){
   jing=str.substr(index);
   str=str.substring(0,index);
  }
  index=str.indexOf("?");
  if(index>0){
   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[i].split("=");
    params[kv[0]]=kv[1];
   }
  }else{
   href=ourl;
   params={};
  }
 };
 this.set=function(key,val){
  params[key]=encodeURIComponent(val);
 };
 this.remove=function(key){
  if(key in params) params[key]=undefined;
 };
 this.get=function(key){
  return params[key];
 };
 this.url=function(key){
  var strurl=href;
        var objps=[];
        for(var k in params){
            if(params[k]){
                objps.push(k+"="+params[k]);
            }
        }
        if(objps.length>0){
            strurl+="?"+objps.join("&");
        }
        if(jing.length>0){
            strurl+=jing;
        }
        return strurl;
 };
 this.debug=function(){
  // 以下调试代码自由设置
  var objps=[];
  for(var k in params){
   objps.push(k+"="+params[k]);
  }
  alert(objps);//输出params的所有值
 };
 init();
}调用方法
JS 操作 URL 函数使用说明:
[code]
var myurl=new objURL(); //初始化。也可以自定义URL: var myurl=new objURL('https://3water.com''); 
var val=myurl.get('abc'); // 读取参数abc的值
myurl.set("arg",data); // 新增/修改 一个arg参数的值为data
myurl.remove("arg"); //移除arg参数
myurl.url();//获取处理后的URL , 一般就直接执行转跳: location.href=myurl.url();
myurl.debug(); //这是调试接口。修改该函数方法进行调试
Javascript 相关文章推荐
JavaScript 乱码问题
Aug 06 Javascript
jQuery 学习第六课 实现一个Ajax的TreeView
May 17 Javascript
jQuery div层的放大与缩小简单实现代码
Mar 28 Javascript
Javascript异步编程模型Promise模式详细介绍
May 08 Javascript
jQuery实现文件上传进度条特效
Aug 12 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
Nov 28 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
May 12 Javascript
js字符串与Unicode编码互相转换
May 17 Javascript
Javascript 实现匿名递归的实例代码
May 25 Javascript
js 倒计时(高效率服务器时间同步)
Sep 12 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
Sep 11 Javascript
Python机器学习之决策树和随机森林
Jul 15 Javascript
js字符串转成JSON
Nov 07 #Javascript
jQuery javaScript捕获回车事件(示例代码)
Nov 07 #Javascript
使用JavaScript实现Java的List功能(实例讲解)
Nov 07 #Javascript
javascript获取所有同类checkbox选项(实例代码)
Nov 07 #Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
Nov 07 #Javascript
网页防止tab键的使用快速解决方法
Nov 07 #Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
Nov 07 #Javascript
You might like
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
js 与或运算符 || &amp;&amp; 妙用
2009/12/09 Javascript
JS常见问题整理(持续更新)
2013/08/06 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
Python之re操作方法(详解)
2017/06/14 Python
在IPython中执行Python程序文件的示例
2018/11/01 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
python pandas模块基础学习详解
2019/07/03 Python
python中return的返回和执行实例
2019/12/24 Python
Python matplotlib实时画图案例
2020/04/23 Python
基于keras中的回调函数用法说明
2020/06/17 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
中国跨境海淘网站:考拉海购
2016/08/01 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
工作中个人的自我评价
2013/12/31 职场文书
党员的自我评价范文
2014/01/02 职场文书
领导证婚人证婚词
2014/01/13 职场文书
医校毕业生自我鉴定
2014/01/25 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
党校培训学习心得体会
2016/01/06 职场文书
python如何进行基准测试
2021/04/26 Python
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis