Hutia 的 JS 代码集


Posted in Javascript onOctober 24, 2006

main.basic.js

/************************************************** 
 *        The Basic Lib for HUTIA frame work 
 * Author: Hutia 
 * E-Mail: Hutia2@gmail.com 
 * Create: 2006-08-21 
 * Last Modify: 2006-08-26 
 * Version: 1.02 
 * Copyright Declare: Everybody can use for freely but can not be used in commerce. 
 * 
 * Please keep this information while quote. 
**/ //******** BEFORE ALL ************** 
var currentLibName="main.basic"; 

try{ // catch all the exceptions during loading 

//================= Declare CONSTANT Section === Start =========== 
var vbOK=0;    var vbOKCancel=1;    var vbAbortRetryIgnor=2;    var vbYesNoCancel=3; 
var vbYesNo=4;    var vbRetryCacel=5;    var vbStop=16;    var vbQuest=32;    var vbAlert=48; 
var vbInfo=64;    var vbReturnOK=1;    var vbReturnCacel=2;    var vbReturnAbort=3; 
var vbReturnRetry=4;    var vbReturnIgnor=5;    var vbReturnYes=6;    var vbReturnNo=7; 
var vbCrLf="\r\n"; 

//----------------- Declare CONSTANT Section - End --------------- 
///////////////////////////////////////////////////////////////////////// 
//================= Declare Global Variable Section === Start =========== 
var SITE_ROOT="E:\\hutia\\program\\Developing\\GJS_v3".replace(/\\/g,"\/").replace(/([^\/])$/,"$1\/"); 


//----------------- Declare Global Variable Section - End --------------- 
///////////////////////////////////////////////////////////////////////// 
//================= Declare Global Function Section === Start =========== 
// Alia Name for AsynLoader.depend 
$depend=function(str,currentLibName,defer){ 
    AsynLoader.depend(str,currentLibName,defer); 
} 
// Alia Name for AsynLoader.include 
$include=function(str){ 
    AsynLoader.include(str); 
} 
function say(str){ 
    alert(str); 
} 
function uid(){ 
    return("u"+(new Date()).getTime().toString(35)+parseInt(Math.random()*999999).toString(35)); 
} 
//----------------- Declare Global Function Section - End --------------- 
///////////////////////////////////////////////////////////////////////// 
//================= Declare Global Object Section === Start =========== 
// The asynchronous loader 
var AsynLoader= new function(){ 
    // delare private variable 
    var alias, currentPath, dependences, dependent, libs, paths; 
} 
AsynLoader.alertLoadResult=function(){ 
    var str=""; 
    for(var i in libs){if(libs[i]=="loaded"){str+="Load \""+i+"\" Successfully.\r\n";}else{str+=libs[i]+"\r\n";}} 
    say(str); 
} 
AsynLoader.alias=function(aliasName,strPath,singleInstance){ 
    strPath=this.getPath(strPath); 
    if(!strPath||typeof(aliasName)!="string"||aliasName=="")return; 
    alias[aliasName]=strPath; 
    alias[aliasName][2]=Boolean(singleInstance); 
} 
AsynLoader.depend=function(strLibName,strSrcLibName,defer){ 
    if(typeof(strLibName)!="string"||strLibName=="")throw("Invalid Lib Name."); 
    if(libs[strLibName]!="loaded"){ 
        if(defer&&alias[strLibName]){ 
            AsynLoader.include(strLibName); 
        }else throw("Dependence validation failure.\r\n"+libs[strLibName]); 
    } 
    if(typeof(strSrcLibName)=="string"&&strSrcLibName!=""){ 
        temp=strSrcLibName+" => "+strLibName; 
        dependences.push(temp); 
    } 
} 
AsynLoader.getDependBy=function(str){ 
    var re=new Array(); 
    for(var i=0;i<dependences.length;i++)if(dependences[i].split(" => ")[1]==str)re.push(dependences[i].split(" => ")[0]); 
    return(re.join(";")); 
} 
AsynLoader.getDependOn=function(str){ 
    var re=new Array(); 
    for(var i=0;i<dependences.length;i++)if(dependences[i].split(" => ")[0]==str)re.push(dependences[i].split(" => ")[1]); 
    return(re.join(";")); 
} 
AsynLoader.getLibs=function(){ 
    var re=new Array(), hash=new Array(); 
    for(var i in libs)if(!hash[i]){hash[i]=true;re.push(i);} 
    re.sort(); 
    return(re.join(";")); 
} 
AsynLoader.getPath=function(strPath){ 
    var ext, i, re, strPath; 
    if(typeof(strPath)!="string"||strPath=="")return(false); 
    ext="js"; 
    if(strPath.indexOf(":")==-1)if(this.pathType=="absolute"){strPath=SITE_ROOT+currentPath+strPath;}else{strPath=currentPath+strPath;} 
    i=strPath.lastIndexOf("."); 
    if(i!=-1&&i<strPath.length-2){ 
        ext=strPath.substring(i+1).toLowerCase(); 
    }else{ 
        strPath=strPath+"."+ext; 
    } 
    return([strPath,ext]); 
} 
AsynLoader.include=function(strPath,className){ 
    var ext, i, singleInstance, strPath; 
    if(alias[strPath]){ 
        strPath=alias[strPath]; 
    }else{ 
        strPath=this.getPath(strPath); 
    } 
    if(!strPath)return(false); 
    ext=strPath[1]; 
    singleInstance=Boolean(strPath[2])||className=="singleInstance"||paths[strPath]=="singleInstance"; 
    strPath=strPath[0]; 
    if(singleInstance&&paths[strPath])return; 
    paths[strPath]=singleInstance?"singleInstance":true; 
    switch(ext){ 
        case "js": 
            document.write("<scr"+"ipt type=\"text\/javascript\" src=\""+strPath+"\" ><\/scr"+"ipt>"); 
        break; 
        case "vbs": 
            document.write("<scr"+"ipt type=\"text\/vbscript\" src=\""+strPath+"\"><\/scr"+"ipt>"); 
        break; 
        case "css": 
            document.write("<link rel=\"stylesheet\" type=\"text\/css\" href=\""+strPath+"\" \/>"); 
        break; 
        case "jpg": case "gif": case "bmp": case "jpeg": case "png": 
            document.write("<img alt=\"\" "+(className?" class=\""+className+"\" ":"")+" src=\""+strPath+"\" \/>"); 
        break; 
        default: 
            document.write("<iframe frameBorder=\"0\" "+(className?" class=\""+className+"\" ":"")+" src=\""+strPath+"\"><\/iframe>"); 
        break; 
    } 
} 
AsynLoader.init=function(){ 
    alias=new Array(); 
    currentPath=""; 
    dependences=new Array(); 
    dependent=new Array(); 
    libs=new Array(); 
    paths=new Array(); 
    this.pathType="absolute"; 
} 
AsynLoader.libs=function(blnNotLoaded){ 
    var re=new Array(); 
    for(var i in libs)if((libs[i]=="loaded")^blnNotLoaded)re.push(i); 
    return(re); 
} 
AsynLoader.loadFailure=function(strLibName,e){ 
    if(e=="exit")return; 
    libs[strLibName]="Loading "+strLibName+" model Failed:\r\n"; 
    for(var i in e)libs[strLibName]+="  "+i+":"+e[i]+"\r\n"; 
} 
AsynLoader.loadSuccess=function(strLibName){ 
    libs[strLibName]="loaded"; 
} 
AsynLoader.setPath=function(strPath){ 
    if(typeof(strPath)!="string")return; 
    currentPath=strPath.replace(/\\/g,"\/").replace(/([^\/])$/,"$1\/"); 
} 
AsynLoader.singleInstance=function(strPath){ 
    if(alias[strPath]){ 
        strPath=alias[strPath]; 
    }else{ 
        strPath=this.getPath(strPath); 
    } 
    if(!strPath)return(false); 
    strPath=strPath[0]; 
    if(paths[strPath]){ 
        throw("exit"); 
    }else{ 
        paths[strPath]=true; 
    } 
} 
AsynLoader.init(); 

//----------------- Declare Global Object Section - End --------------- 
///////////////////////////////////////////////////////////////////////// 
//================= Initialization Section === Start =========== 
AsynLoader.pathType="relative"; 
AsynLoader.include("js/main.alias.js"); 
//----------------- Initialization Section - End --------------- 
//***************** AFTER ALL *********************** 
AsynLoader.loadSuccess(currentLibName); 
}catch(e){ AsynLoader.loadFailure(currentLibName); } 
//////////////////////////////////////////////////////////////// 
///////////////////       File End    ////////////////////////// 
////////////////////////////////////////////////////////////////

Javascript 相关文章推荐
javascript高级学习笔记整理
Aug 14 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
Oct 11 Javascript
jQuery过滤选择器用法分析
Feb 10 Javascript
AngularJS实现一次监听多个值发生的变化
Aug 31 Javascript
JavaScript中的ajax功能的概念和示例详解
Oct 17 Javascript
详解Node.js:events事件模块
Nov 24 Javascript
xmlplus组件设计系列之按钮(2)
Apr 26 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
Jun 21 Javascript
深入浅析Vue不同场景下组件间的数据交流
Aug 15 Javascript
jQuery实现的form转json经典示例
Oct 10 jQuery
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
May 07 Javascript
axios如何取消重复无用的请求详解
Dec 15 Javascript
xmlHTTP实例
Oct 24 #Javascript
一个JavaScript继承的实现
Oct 24 #Javascript
动态加载js的几种方法
Oct 23 #Javascript
用js怎么把&amp;字符换成&quot;&amp;amp:&quot;
Oct 19 #Javascript
对联广告js flash激活
Oct 19 #Javascript
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
Oct 17 #Javascript
菜单效果
Oct 14 #Javascript
You might like
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
微信小程序的分类页面制作
2017/06/27 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
2017/10/18 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
使用typescript构建Vue应用的实现
2019/08/26 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
Python使用稀疏矩阵节省内存实例
2014/06/27 Python
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
Python 线程池用法简单示例
2019/10/02 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
浅析python内置模块collections
2019/11/15 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
Charles & Colvard官网:美国莫桑石品牌
2019/06/05 全球购物
2014年预算员工作总结
2014/12/05 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技