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 学习之二 属性(html()与html(val))
Nov 25 Javascript
使用jquery为table动态添加行的实现代码
Mar 30 Javascript
基于JQuery 选择器使用说明介绍
Apr 18 Javascript
js中prototype用法详细介绍
Nov 14 Javascript
node.js中的fs.writeFileSync方法使用说明
Dec 14 Javascript
Javascript调用函数方法的几种方式介绍
Mar 20 Javascript
js实现滑动触屏事件监听的方法
May 05 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
Aug 11 Javascript
总结Javascript中数组各种去重的方法
Oct 04 Javascript
vue中el-upload上传图片到七牛的示例代码
Oct 19 Javascript
一个手写的vue放大镜效果
Aug 09 Javascript
jquery+ajax实现异步上传文件显示进度条
Aug 17 jQuery
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 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
javascript 获取select下拉列表值的代码
2009/09/07 Javascript
JavaScript关于select的相关操作说明
2010/01/13 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
详解Vue内部怎样处理props选项的多种写法
2018/11/06 Javascript
jquery获取input输入框中的值
2019/11/13 jQuery
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
2020/05/13 Javascript
[01:00]DOTA2 store: Collection of Artisan's Wonders
2015/08/12 DOTA
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
Python设计模式之建造者模式实例详解
2019/01/17 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
医学检验专业自荐信
2014/09/18 职场文书
给医院的感谢信
2015/01/21 职场文书
仓管员岗位职责
2015/02/03 职场文书
销售经理岗位职责范本
2015/04/02 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书