二级域名转向类


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 22 Javascript
精通JavaScript 纠正 cleanWhitespace函数
Mar 11 Javascript
javascript+canvas制作九宫格小程序
Dec 28 Javascript
JavaScript获取网页表单action属性的方法
Apr 02 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
Jul 07 Javascript
Vue.js如何实现路由懒加载浅析
Aug 14 Javascript
关于Vue组件库开发详析
Jul 01 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
Nov 15 Javascript
js序列化和反序列化的使用讲解
Jan 19 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
Jul 19 Javascript
基于JS实现简单滑块拼图游戏
Oct 12 Javascript
javascript对象3个属性特征
Nov 17 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
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
深入理解PHP内核(一)
2015/11/10 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
用循环或if语句从json中取数据示例
2014/08/18 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
清除输入框内的空格
2016/12/21 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
JavaScript判断浏览器和hack滚动条的写法
2017/07/23 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
教你如何在Django 1.6中正确使用 Signal
2014/06/22 Python
Python argv用法详解
2016/01/08 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
如何理解python中数字列表
2020/05/29 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
css3 box-sizing属性使用参考指南
2013/01/08 HTML / CSS
简单说下OSPF的操作过程
2014/08/13 面试题
音乐表演专业毕业生求职信
2013/10/14 职场文书
写自荐信的注意事项
2014/03/09 职场文书
销售团队口号大全
2014/06/06 职场文书
《水上飞机》教学反思
2016/02/20 职场文书