二级域名转向类

  DomainClass.js

  /*

  @Class DomainClass(二级域名转向类)

  @author 逍遥云-http://bbs.51js.com

  @Version 1.0

  @Date 2006-11-2

  @Rights 如使用请保留此信息,谢谢

  */

  function DomainClass(){

  //记录本身

  var ōwner=this;

  //域名集合

  var arr=[];

  //////////////////////////////////////公开属性

  //设定缺省目录

  owner.defaultDir="";

  //设定缺省域名

  owner.defaultDomain="";

  //设定缺省跳转网址

  owner.defaultURL="";

  //不存在的域名跳转

  owner.noExistURL="";

  /////////////////////////////////////公开方法

  //添加域名方法

  //参数1:域名 2:目录 3:输出域名 4:指定跳转地址

  owner.addDomain=function(){

  if(arguments.length==0){

  return;

  }

  if(arguments.length>0){

  var tempObj=new Object();

  tempObj.domain=arguments[0]; //域名

  tempObj.dir="";     //对应目录

  tempObj.out="";     //输出域名

  tempObj.url="";        //指定跳转地址

  }

  if(arguments.length>1){

  tempObj.dir=arguments[1];

  }

  if(arguments.length>2){

  tempObj.out=arguments[2];

  }

  if(arguments.length>3){

  tempObj.url=arguments[3];

  }

  arr.push(tempObj);    //推入数组

  }

  //查找域名

  function seekDomain(href_loc){

  //取得二级域名头

  var loc=href_loc.split("//")[1].split(".")[0];

  for(var i=0;i<arr.length;i++){

  //判定域名

  if(arr[i].domain==loc){

  //跳转

  jumpWeb(href_loc,arr[i]);

  return;

  }

  }

  //不存在时处理的域名对象

  var notObj=new Object();

  notObj.out=owner.defaultDomain;

  notObj.dir=owner.defaultDir;

  notObj.url=owner.noExistURL;

  alert("提示:\n\n你还没有设置名为: \""+loc+"\" 这样的域名!");

  //域名头替换

  href_loc=href_loc.replace(/\/\/[^.]+/,"//"+notObj.out);

  jumpWeb(href_loc,notObj);

  }

  //跳转函数

  function jumpWeb(href_loc,obj){

  //判定跳转

  if(obj.url!=""){

  self.location=obj.url;

  return;

  }

  //替换空域名为默认

  if(obj.out==""){

  obj.out=owner.defaultDomain;

  }

  //域名替换

  href_loc=href_loc.replace(/\/\/[^.]+/,"//"+obj.out);

  //替换空目录为默认

  if(obj.dir==""){

  obj.dir=owner.defaultDir;

  }

  //目录替换

  href_loc=href_loc.replace(/(\/\/[^\/]+\/)/,"$1"+obj.dir+"\/");

  //重定义网址

  self.location=href_loc;

  }

  //初始化,公开

  owner.init=function(){

  //如果设置了默认跳转

  if(owner.defaultURL!=""){

  self.location=owner.defaultURL;

  return;

  }

  //如果没设缺省目录或缺省域名

  if(owner.defaultDir==""||owner.defaultDomain==""){

  alert("请设置:\n\n1.缺省目录:DomainClass.defaultDir.   \n\n2.缺省域名:DomainClass.defaultDomain   ");

  }

  else{

  seekDomain(self.location.href);

  }

  }

  }

  index.htm

  <HTML>

  <HEAD>

  <TITLE> Loading.... </TITLE>

  <scrīpt LANGUAGE="Javascrīpt" src="leon/code/javascrīpt/domainclass.js"></scrīpt>

  </HEAD>

  <BODY>

  <scrīpt LANGUAGE="Javascrīpt">

  <!--

  var d=new DomainClass();

  /*

  defaultDir:默认跳转目录

  defaultURL:默认全部跳转目录,如设置了此项,所有的请求就会以此为主

  defaultDomain:默认输出域名

  noExistURL:默认无此网址的跳转,如设置了此项,所有无网址的跳转都以此为主,如果无则为默认

  addDomain:添加域名方法,最少一个参数,否则视无效

  */

  //设置默认目录

  d.defaultDir="pal";

  //设置默认跳转

  //d.defaultURL="http://hi.baidu.com/pallove";

  //设置默认输出域名

  d.defaultDomain="pal";

  //添加二级域名

  d.addDomain("pal","pal","pal");

  d.addDomain("blog","blog","pal");

  d.addDomain("leon","leon","love");

  d.addDomain("51js","51js","51js","http://www.51js.com/11191");

  d.addDomain("baidu","","","http://hi.baidu.com/pallove");

  d.init();

  //-->

  </scrīpt>

  </BODY>

  </HTML>

  详细效果请查看

  URL跳出

  无忧逍遥的Blog http://51js.pallove.net

  百度空间 http://baidu.pallove.net

  目录跳转

  http://pal.pallove.net/

  http://love.pallove.net

  http://flash.pallove.net

  在此考贝以上代码下载此类文件

  http://pal.pallove.net/leon/code/javascrīpt/domainclass.js

  如您使用或转载,请保留版权与个人信息。谢谢!