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 相关文章推荐
建立良好体验度的Web注册系统ajax
Jul 09 Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
Mar 31 Javascript
JS获得浏览器版本和操作系统版本的例子
May 13 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
Aug 27 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
May 27 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
Nov 15 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
Sep 19 Javascript
记一次vue去除#问题处理经过小结
Jan 24 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
Apr 04 Javascript
微信小程序中悬浮窗功能的实现代码
Aug 02 Javascript
js模拟实现百度搜索
Jun 28 Javascript
vue动态绑定style样式
Apr 20 Vue.js
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框架Swoole定时器Timer特性分析
2014/08/19 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
javascript 一段左右两边随屏滚动的代码
2009/06/18 Javascript
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
JS 实现随机验证码功能
2017/02/15 Javascript
js获取ip和地区
2017/03/10 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
详解如何使用 vue-cli 开发多页应用
2017/12/16 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
json 带斜杠时如何解析的实现
2019/08/12 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
python merge、concat合并数据集的实例讲解
2018/04/12 Python
详解Python循环作用域与闭包
2019/03/21 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
Python @property及getter setter原理详解
2020/03/31 Python
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
房地产销售计划书
2014/01/10 职场文书
师生聚会感言
2014/01/26 职场文书
文明学生事迹材料
2014/01/29 职场文书
中文专业学生自我评价范文
2014/02/06 职场文书
高中生操行评语
2014/04/25 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
收银员岗位职责
2015/02/03 职场文书
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB
mysqldump进行数据备份详解
2022/07/15 MySQL