JS-URL类

原创 2006年06月15日 11:20:00

<script language="javascript">
 /*
  '---------------------------------------------------
  '-------------冰风URL类--------------
  '-------------QQ:117921282--------------
  '-------------E-Mail:dchunzi@163.com--------------
  '-------------HomePage:http://www.aspbase.net--------------
  '---------------------------------------------------
 */


 function URL(input_url)
 {
  this.url = input_url?input_url:document.location.href;
  this.scriptName = "";
  
  this.params = new Array();
  this.makeParams = function(){
    var tmp_url = this.url;
    var spIdx = tmp_url.indexOf("?");
    if( spIdx == -1){
     this.scriptName = tmp_url;
     return ;
    }
    this.scriptName = tmp_url.substring(0,spIdx-1);
    tmp_url=tmp_url.substring(spIdx+1);
    
    this.params = tmp_url.split("&");
        
   }
  this.makeParams();
 
  this.buildURL = function (){
    var tmp_url = this.scriptName;
    
    tmp_url += "?";
    
    for(var k=0;k<this.params.length;k++)
      tmp_url += this.params[k] +"&";
         
    tmp_url = tmp_url.substring(0,tmp_url.length-1);
    
    this.url = tmp_url;
     
   }
   
  this.addParam = function (key,value){
    for(var i=0;i<this.params.length;i++){
     if(this.params[i].split("=")[0] == key){
      this.editParam(key,value);      
      return;
     }
    }
    this.params[this.params.length] = key+"="+value;
    this.buildURL();
   }
   
  this.delParam = function (key){
    var keyIdx=-1;
    for(var i=0;i<this.params.length;i++)
     if(this.params[i].split("=")[0] == key)
      {
       keyIdx = i;
       break;
      }
    if (keyIdx == -1)
     return;
     
    for(var j=keyIdx+1;j<this.params.length;j++)
     this.params[j-1] = this.params[j];
    
    this.params.length--;
    
    this.buildURL();
   }
   
  this.editParam = function(key,keyV){
    for(var i=0;i<this.params.length;i++){
     if(this.params[i].split("=")[0] == key){
      this.params[i] = key+"="+keyV;
      this.buildURL();
      return;
      }
    }
    
    this.addParam(key,keyV);
    
   }
   
   
  this.keys = function(key){
   for(var i=0;i<this.params.length;i++){
     if(this.params[i].split("=")[0] == key){
      var tmpObj = new Object();
      tmpObj.key = key;
      tmpObj.value = this.params[i].split("=")[1];
      return tmpObj;
     }
   }
  }  
 
   
 }
  
 var url=new URL();    //生成 一个URL实例

 url.addParam("X","1");   //添加一个URL参数

 url.addParam("Y","2");   //添加一个URL参数

 url.addParam("Z","3");   //添加一个URL参数


 url.delParam("Y");    //删除一个URL参数
 url.editParam("Z","4")   //修改一个URL参数
 
 alert(url.keys("X").value)  //查找一个URL参数
  
 alert(url.url);     //获取完整的URL
 
</script>

js-url打开方式

引用自 : 老张的博客 *.location.href 用法:  top.location.href=”url”          在顶层页面打开url(跳出框架)  self.location.hr...
  • a695422768
  • a695422768
  • 2017年04月10日 10:18
  • 216

类类类

文档类 class SampleDate extends egret.DisplayObjectContainer{ public constructor() { supe...
  • lusic01
  • lusic01
  • 2017年02月07日 17:14
  • 95

Python新式类与经典类(旧式类)的区别

Python新式类与经典类(旧式类)的区别 Python中类分两种:旧式类和新式类: ➤新式类都从object继承,经典类不需要。 ➤新式类的MRO(method resolution orde...
  • zimou5581
  • zimou5581
  • 2016年11月06日 12:15
  • 3239

IP地址分类(A类 B类 C类 D类 E类)

IP地址分类(A类 B类 C类 D类 E类)      IP地址由四段组成,没个字段是一个字节,8位,最大值是255,,      IP地址由两部分组成,即网络地址和主机地址。网络地址表示...
  • kzadmxz
  • kzadmxz
  • 2017年06月24日 10:02
  • 1079

局部类和嵌套类(类定义中包含类定义)

局部类   在一个函数体内定义的类称为局部类。局部类中只能使用它的外围作用域中的对象和函数进行联系,因为外围作用域中的变量与该局部类的对象无关。局部类不能被外部所继承。在定义局部类时需要注意:局...
  • HDUTigerkin
  • HDUTigerkin
  • 2012年05月15日 15:13
  • 6081

细说python类1——经典类和新式类

python中的类分为新式类和经典类,具体有什么区别呢?简单的说, 1.新式类都从object继承,经典类不需要。 2.经典类继承深度优先,经典类继承广度优先。 3.新式类相同父类只执行一次构造函数,...
  • u010576100
  • u010576100
  • 2016年01月27日 14:31
  • 1583

关于实体类、边界类和控制类

实体类:     实体类是用于对必须存储的信息和相关行为建模的类。实体对象(实体类的实例)用于保存和更新一些现象的有关信息,例如:事件、人员或者一些现实生活中的对象。实体类通常都是永久性的,它们所具有...
  • Bestrem_9
  • Bestrem_9
  • 2011年02月22日 17:26
  • 6723

Python新式类和经典类的区别

从Python2.2开始,Python 引入了 new style class(新式类) 新式类跟经典类的差别主要是以下几点: 新式类对象可以直接通过__class__属性获取自身...
  • u010066807
  • u010066807
  • 2015年07月15日 18:04
  • 7362

python中类的总结

关于python中类的部分总结
  • kellyseeme
  • kellyseeme
  • 2016年04月22日 19:45
  • 1381

基金a类和c类 收费什么区别

如果是ABC三类的基金,A类一般是代表前端收费,B类代表后端收费,而C类是没有申购费,即无论前端还是后端,都没有手续费。天下没有免费午餐。不收一次性申购费,就按日收取销售服务费,但这也不是说这中间没有...
  • IAlexanderI
  • IAlexanderI
  • 2017年09月15日 16:17
  • 928
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JS-URL类
举报原因:
原因补充:

(最多只允许输入30个字)