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 相关文章推荐
JS URL传中文参数引发的乱码问题
Sep 02 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
Jan 17 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
Jul 31 Javascript
js如何判断不同系统的浏览器类型
Oct 28 Javascript
浅谈jquery的map()和each()方法
Jun 12 Javascript
javascript中Date对象应用之简易日历实现
Jul 12 Javascript
详解Javascript几种跨域方式总结
Feb 27 Javascript
react 实现页面代码分割、按需加载的方法
Apr 03 Javascript
js实现前面自动补全位数的方法
Oct 10 Javascript
video.js 一个页面同时播放多个视频的实例代码
Nov 27 Javascript
小程序实现列表多个批量倒计时
Jan 29 Javascript
原生js生成图片验证码
Oct 11 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
php与java通过socket通信的实现代码
2013/10/21 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
js 页面执行时间计算代码
2009/03/04 Javascript
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
jquery的相对父元素和相对文档定位示例代码
2013/08/02 Javascript
JQuery对class属性的操作实现按钮开关效果
2013/10/11 Javascript
JS动态增加删除UL节点LI及相关内容示例
2014/05/21 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
node.js Promise对象的使用方法实例分析
2019/12/26 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
Python可变参数用法实例分析
2017/04/02 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
python处理数据,存进hive表的方法
2018/07/04 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
PyQt5实现类似别踩白块游戏
2019/01/24 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
企业精细化管理实施方案
2014/03/23 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
加强作风建设工作总结
2014/10/23 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏
JavaScript中reduce()的用法
2022/05/11 Javascript
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android