二级域名转向类


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 相关文章推荐
javascript拓展DOM操作 prependChild insertAfert
Nov 17 Javascript
jquery实现弹出层遮罩效果的简单实例
Mar 03 Javascript
javascript作用域和闭包使用详解
Apr 25 Javascript
Javascript基础教程之break和continue语句
Jan 18 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
Aug 03 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
Oct 14 Javascript
video.js使用改变ui过程
Mar 05 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
Sep 04 Javascript
Angular中使用MathJax遇到的一些问题
Dec 15 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
May 13 Javascript
layer 刷新某个页面的实现方法
Sep 05 Javascript
Angular+ionic实现折叠展开效果的示例代码
Jul 29 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
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
对laravel in 查询的使用方法详解
2019/10/09 PHP
Laravel统一错误处理为JSON的方法介绍
2020/10/18 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
jQuery select的操作实现代码
2009/05/06 Javascript
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
jquery 最简单的属性菜单
2009/10/08 Javascript
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
javascript图片延迟加载实现方法及思路
2015/12/31 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
纯JS实现只能输入数字的简单代码
2017/06/21 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
移动端Ionic App 资讯上下循环滚动的实现代码(跑马灯效果)
2017/08/29 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
Python实现的简单算术游戏实例
2015/05/26 Python
Django保护敏感信息的方法示例
2019/05/09 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
天鹅的故事教学反思
2014/02/04 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
英语故事演讲稿
2014/04/29 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
圆明园观后感
2015/06/03 职场文书