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 相关文章推荐
对xmlHttp对象的理解
Jan 17 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
Dec 09 Javascript
JS操作Cookie写入和读取实例代码
Oct 20 Javascript
js弹窗返回值详解(window.open方式)
Jan 11 Javascript
JQuery选择器、过滤器大整理
May 26 Javascript
走进AngularJs之过滤器(filter)详解
Feb 17 Javascript
node.js中fs.stat与fs.fstat的区别详解
Jun 01 Javascript
webpack4.x CommonJS模块化浅析
Nov 09 Javascript
Javascript模块化机制实现原理详解
Apr 02 Javascript
vue全局使用axios的操作
Sep 08 Javascript
详解Vue中的自定义指令
Dec 07 Vue.js
JavaScript 实现页面滚动动画
Apr 24 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
PHP4之真OO
2006/10/09 PHP
建立文件交换功能的脚本(三)
2006/10/09 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
php ci框架中加载css和js文件失败的原因及解决方法
2014/07/29 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
js资料toString 方法
2007/03/13 Javascript
HTML5附件拖拽上传drop &amp; google.gears实现代码
2011/04/28 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
JS选取DOM元素的简单方法
2016/07/08 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
NodeJS加密解密及node-rsa加密解密用法详解
2018/10/12 NodeJs
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
Python random模块用法解析及简单示例
2017/12/18 Python
使用C++扩展Python的功能详解
2018/01/12 Python
Python中return self的用法详解
2018/07/27 Python
Python标准库shutil用法实例详解
2018/08/13 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
python中比较两个列表的实例方法
2019/07/04 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
竞选学生会演讲稿
2014/04/25 职场文书
家长对孩子的寄语
2015/02/26 职场文书
无罪辩护词范文
2015/05/21 职场文书
职业生涯规划书之大学四年
2019/08/07 职场文书
python opencv通过按键采集图片源码
2021/05/20 Python