二级域名转向类


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 相关文章推荐
基于Jquery的简单图片切换效果
Jan 06 Javascript
关于js数组去重的问题小结
Jan 24 Javascript
JavaScript模拟实现继承的方法
Mar 30 Javascript
jquery滚动特效集锦
Jun 03 Javascript
Node.js事件驱动
Jun 18 Javascript
JS鼠标拖拽实例分析
Nov 23 Javascript
图解js图片轮播效果
Dec 20 Javascript
网页瀑布流布局jQuery实现代码
Oct 21 Javascript
Puppeteer环境搭建的详细步骤
Sep 21 Javascript
JS实现的贪吃蛇游戏完整实例
Jan 18 Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
Jul 10 Javascript
使用Vue生成动态表单
Nov 26 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 MVC
2014/09/10 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
2016/09/30 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
return false;和e.preventDefault();的区别
2010/07/11 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
简单理解vue中el、template、replace元素
2016/10/27 Javascript
Bootstarp 基础教程之表单部分实例代码
2017/02/03 Javascript
关于webpack2和模块打包的新手指南(小结)
2017/08/07 Javascript
微信小程序实现的贪吃蛇游戏【附源码下载】
2018/01/03 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
详谈python在windows中的文件路径问题
2018/04/28 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
Old Navy加拿大官网:美式休闲服饰品牌
2017/09/26 全球购物
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
资料员的岗位职责
2013/11/20 职场文书
音乐学个人的自荐书范文
2013/11/26 职场文书
打架检讨书100字
2014/01/08 职场文书
股权转让协议书范本
2014/04/12 职场文书
空气的环保标语
2014/06/12 职场文书
授权收款委托书范本
2014/10/10 职场文书
2014年团总支工作总结
2014/11/21 职场文书
户外活动总结
2015/02/04 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python
浅谈Vue的computed计算属性
2022/03/21 Vue.js