Hutia 的 JS 代码集

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    //////////////////////////
////////////////////////////////////////////////////////////////

(0)

相关推荐

  • Hutia 的 JS 代码集

    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 Decl

  • js 代码集(学习js的朋友可以看下)

    /** * @author Super Sha * QQ:770104121 * E-Mail:supei_shafeng@163.com * publish date: 2009-3-27 * All Rights Reserved */ var JsHelper={}; //声明一个JsHelper根命名空间 JsHelper.DOM = {}; //声明JsHelper目录下的DOM命名空间 JsHelper.Event={}; //声明JsHelper目录下的Event事件命名空间 Js

  • JS代码检查工具ESLint介绍与使用方法

    ESLint不但提供一些默认的规则,也提供用户自定义规则来约束所写的JavaScript代码. 发展历史 Douglas Crockford大神根据自己的理念用JavaScript写了一个JavaScript代码规范检查工具,这就是JSLint.后来非常流行,也的确帮助了广大的JavaScript程序员.但是,大神对于自己的代码规范不做丝毫的妥协,对开源社区的反馈的回应也不礼貌.于是,JSLint从一个帮助程序员规范代码,避免Bug的工具,变成了一个让代码像Crockford的工具.在最不信神的

  • tinyMCE插件开发之插入html,php,sql,js代码 并代码高亮显示

    下面就是我开发的过程. 首先,我的 tinyMCE版本是 Version: 3.2.7 (2009-09-22) .下载地址 http://www.jb51.net/codes/17198.htmltinyMCE插入代码,需要调用 tinyMCE的 tinyMCE.execCommand('mceInsertContent',false,value); 方法.其中参数无需改变,value 就是你要插入的内容, 比如我写了一个函数, 复制代码 代码如下: function InsertHTML(v

  • 简单易用的倒计时js代码

    <!doctype html> <html> <head> <meta charset="utf-8"> <title>简单易用的倒计时js代码</title> <style> *{ margin:0; padding:0; list-style:none;} body{ font-size:18px; text-align:center;} .time{ height:30px; padding:20

  • js代码实现点击按钮出现60秒倒计时

    比如,一些网站上的手机短信认证的功能,有类似实现点击按钮后,倒计时60秒才能再次点击发送的效果. 此例子用Javascript实现点击按钮后,倒计时60秒才能再次点击发送验证码的功能. 例子1:Javascript 实现 点击按钮 倒计时60秒方可再次点击发送的效果 <input type="button" id="btn" value="免费获取验证码" /> <script type="text/javascrip

  • 鼠标放在图片上显示大图的JS代码

    显示大图和隐藏大图的js代码: 复制代码 代码如下: <script type="text/javascript">   //显示图片   function over(imgid,obj,imgbig)   {//大图显示的最大尺寸  4比3的大小  400 300maxwidth=400;maxheight=300; //显示        obj.style.display="";        imgbig.src=imgid.src; //1.宽

  • 教你用AngularJS框架一行JS代码实现控件验证效果

    如上图所示,我们需要实现如下这些验证功能: 控件都是必输控件 都需要控制最大长度 第一次打开页面,控件不能显示为错误状态 输入内容再清空后,必输控件需要显示为错误状态 只有所有输入合法后,发布按钮才能变为可用状态 通过AngularJS,我们可以很轻松的实现这些要求,只需要1行JS代码.UI样式这里采用的是Bootstrap.先上示例代码: HTML. <!DOCTYPE html> <html lang="zh-cn" ng-app="ftitApp&qu

  • js调试工具console.log()方法查看js代码的执行情况

    我之前在调试代码的时候,跟砸js代码执行情况,一般都是通过在代码块中使用alert的方式查看js代码的执行情况,今天也是看到有朋友使用console.log函数打印输出函数,变量,对象,下边就console.log的使用情况进行记录,具体的语法是: console.log("值为:",fn); console.log()能够输出变量,函数,数组,对象等等 <html> <head> <title>this关键字_函数调用</title>

  • 最佳JS代码编写的14条技巧

    写任何编程代码,不同的开发者都会有不同的见解.但参考一下总是好的,下面是来自Javascript Toolbox发布的14条最佳JS代码编写技巧. 1. 总是使用 var 在javascript中,变量不是全局范围的就是函数范围的,使用var关键词将是保持变量简洁明了的关键.当声明一个或者是全局或者是函数级(function-level)的变量,需总是前置var关键词,下面的例子将强调不这样做潜在的问题. 不使用 Var 造成的问题 var i=0; // This is good - crea

随机推荐