二级域名转向类


Posted in Javascript onNovember 09, 2006

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

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

Javascript 相关文章推荐
改写一个简单的菜单 弹性大小
Dec 02 Javascript
解析js原生方法创建表格效率测试
Jul 08 Javascript
jquery validate在ie8下的bug解决方法
Nov 13 Javascript
JS检测输入字符是否包含非法字符的示例代码
Feb 11 Javascript
javascript中不易分清的slice,splice和split三个函数
Mar 29 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
Apr 17 Javascript
使用BootStrapValidator完成前端输入验证
Sep 28 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
May 02 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
May 13 jQuery
js禁止表单重复提交
Aug 29 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
Jan 05 Javascript
React 路由懒加载的几种实现方案
Oct 23 Javascript
JavaScript的面向对象(一)
Nov 09 #Javascript
JavaScript的面向对象(二)
Nov 09 #Javascript
利用javascript查看html源文件
Nov 08 #Javascript
用javascript获得地址栏参数的两种方法
Nov 08 #Javascript
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
Nov 07 #Javascript
Ucren Virtual Desktop V2.0
Nov 07 #Javascript
非常不错的一个javascript 类
Nov 07 #Javascript
You might like
PHP 八种基本的数据类型小结
2011/06/01 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
基于JavaScript实现简单的随机抽奖小程序
2016/01/05 Javascript
jQuery实现简单隔行变色的方法
2016/02/20 Javascript
用move.js库实现百叶窗特效
2017/02/08 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
基于hover的用法实例(推荐)
2017/07/04 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
vue框架下部署上线后刷新报404问题的解决方案(推荐)
2019/04/03 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
python多维数组切片方法
2018/04/13 Python
Python中内建模块collections如何使用
2020/05/27 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
Pandas之缺失数据的实现
2021/01/06 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
韩国邮政旗下生鲜食品网上超市:epost
2016/08/27 全球购物
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
解释一下抽象方法和抽象类
2016/08/27 面试题
家长对学生的评语
2014/04/18 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android