二级域名转向类


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调用后台的三种方法实例
Oct 17 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
Nov 19 Javascript
利用js读取动态网站从服务器端返回的数据
Feb 10 Javascript
JS截取url中问号后面参数的值信息
Apr 29 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
Dec 19 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
Aug 11 Javascript
HTML Table 空白单元格补全的简单实现
Oct 13 Javascript
Mac下使用charles遇到的问题以及解决办法
Jan 10 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
Jan 21 Javascript
简单实现js放大镜效果
Jul 24 Javascript
Vue 引入AMap高德地图的实现代码
Apr 29 Javascript
JavaScript对象字面量和构造函数原理与用法详解
Apr 18 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
解析PHP的session过期设置
2013/06/29 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
video.js 实现视频只能后退不能快进的思路详解
2018/08/09 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
JS异步处理的进化史深入讲解
2019/08/25 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
vue实现输入一位数字转汉字功能
2019/12/13 Javascript
vue项目实现多语言切换的思路
2020/09/17 Javascript
python字符串替换示例
2014/04/24 Python
Python中返回字典键的值的values()方法使用
2015/05/22 Python
python中异常捕获方法详解
2017/03/03 Python
基于python实现名片管理系统
2018/11/30 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
对Django中内置的User模型实例详解
2019/08/16 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
基于python的列表list和集合set操作
2019/11/24 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
Python学习之time模块的基本使用
2021/01/17 Python
python中K-means算法基础知识点
2021/01/25 Python
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
大一期末自我鉴定
2013/12/13 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
试用期自我评价范文
2015/03/10 职场文书
给老师的保证书怎么写
2015/05/09 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫