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 相关文章推荐
jQuery 隔行换色 支持键盘上下键,按Enter选定值
Aug 02 Javascript
JavaScript中奇葩的假值示例应用
Mar 11 Javascript
Javascript显示和隐藏ul列表的方法
Jul 15 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
Nov 04 Javascript
JS实现单击输入框弹出选择框效果完整实例
Dec 14 Javascript
论JavaScript模块化编程
Mar 07 Javascript
Kindeditor在线文本编辑器如何过滤HTML
Apr 14 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
May 20 jQuery
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
Jun 11 jQuery
bootstrap3-dialog-master模态框使用详解
Aug 22 Javascript
JQuery的加载和选择器用法简单示例
May 13 jQuery
JS/CSS实现字符串单词首字母大写功能
Sep 03 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
php 缩略图实现函数代码
2011/06/23 PHP
php stripslashes和addslashes的区别
2014/02/03 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
2010/05/25 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
Python简单连接MongoDB数据库的方法
2016/03/15 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
python自动发送邮件脚本
2018/06/20 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
2019/06/17 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
python读取xml文件方法解析
2020/08/04 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
美国最大婚纱连锁店运营商:David’s Bridal
2019/03/12 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
电气自动化大学生求职信
2013/10/16 职场文书
办公室主任职责范本
2014/03/07 职场文书
廉洁使者实施方案
2014/03/29 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
行政人事专员岗位职责
2015/04/07 职场文书
网聊搭讪开场白
2015/05/28 职场文书
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫
Redis实战高并发之扣减库存项目
2022/04/14 Redis