public

///公共类
var ND = {};

///返回指定ID的元素
ND.$ = function(id)
{
    return document.getElementById(id);
}

///创建元素
ND.Create = function(eTag)
{
    return document.createElement(eTag);
}

//浏览器类型
ND.Brower =
{
    IsIE: document.all ? true : false,
    IsFF: document.all ? false: true
}


///StringBuffer类
ND.String = function()
{
    this._string = new Array();
    if(arguments.length > 0)
    {
        Array.prototype.push.apply(this._string, arguments);
    }
}
ND.String.prototype.Append = function()
{
    if(arguments.length > 0)
    {
         //apply 作用是将函数绑定到另外一个对象上去运行
         //apply(thiArg,argArray)
        Array.prototype.push.apply(this._string, arguments);//=>this._string.push(arguments)
    }
}
ND.String.prototype.AppendFormat = function()
{
    var str = arguments[0];
    var reg = //{/d/}/g;// /g表示匹配尽可能多。
    var strReg = str.match(reg);
    var index;
    for(var i = 0; i < strReg.length; i++)
    {
        index = parseInt(strReg[i].substring(1, strReg[i].length - 1));//{1}=》1
        str = str.replace(strReg[i], arguments[index + 1]);//把参数的第index+1个替换前面的数字
    }
    this._string.push(str);
}
ND.String.prototype.ToString = function()
{
    return this._string.join("");
}
ND.String.prototype.toString = function()
{
    return this.ToString();
}


///脚本操作类
ND.Script = function()
{
    this.allScript = document.getElementsByTagName("script");
}

//载入脚本文件AJAX
ND.Script.prototype.Append = function(src, func)
{
    if (this.IsExists(src))
    {
        ND.Script.Exec(func);
        return;
    }
    
    //AJAX取得JS脚本内容
    function getCode(result)
    {
        var jsCode = result.responseText;
        var _script = document.createElement("script");
        _script.language = "javascript";
        _script.type = "text/javascript";
        _script.text = jsCode;
        _script.id = src;
        document.getElementsByTagName("head")[0].appendChild(_script);
        ND.Script.Exec(func);
        _script = null;
    }
    
    ND.Ajax.Request({url: src, method: "GET", success: getCode});
    src = null;
    func = null;
}

//载入脚本文件DOM
ND.Script.Append = function(src)
{
    var _script = document.createElement("script");
    _script.language = "javascript";
    _script.type = "text/javascript";
    _script.id= src;
    _script.src= src;
}

//判断给与的Id是否已存在
ND.Script.prototype.IsExists = function(id)
{
    var script = this.allScript;
    for(var i = 0; i < script.length; i++)
    {
        if(script[i].id == id)
        {
            //存在
            return true;
        }
    }
    
    //不存在
    return false;
}

//执行方法
ND.Script.Exec = function(func)
{
    if(func)
    {
        var execFun = typeof func == "function" ? func : new Function(func);
        execFun();
    }
}


//获取左距、顶距
ND.Offset = {};
//顶距
ND.Offset.GetTop = function(el)
{
    var result = 0;
    while(el != null)
    {
        result += el.offsetTop;
        el = el.offsetParent;
    }
    
    return result;
}
//左距
ND.Offset.GetLeft = function(el)
{
    var result = 0;
    while(el != null)
    {
        result += el.offsetLeft;
        el = el.offsetParent;
    }
    
    return result;
}


//Ajax类
ND.Ajax = {};
//封装XMLHttpRequest(IE)对象
if (window.ActiveXObject && !window.XMLHttpRequest)
{
    window.XMLHttpRequest = function()
    {
        var MSXML = new Array("Msxml2.XMLHTTP", "Microsoft.XMLHTTP");
        for(var i = 0; i < MSXML.length; i++)
        {
            try
            {
                return new ActiveXObject(MSXML[i]);
            }
            catch(e) { }
        }
        
        return null;
    }
}

ND.Ajax.Request = function(jsonObj)
{
    var xmlHttp = new XMLHttpRequest();
    var url = jsonObj.url;
    var param = "";
    for(var name in jsonObj.param)
    {
        param += name + "=" + jsonObj.param[name] + "&";
    }
    param = param == null ? null : param.substring(0, param.length - 1);
    var method = jsonObj.method ? jsonObj.method : "POST";
    var success = jsonObj.success;
    var failure = jsonObj.failure;
    var after = jsonObj.after;
	xmlHttp.open(method, url, true);
	xmlHttp.setRequestHeader("content-length", param.length);
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");   
    xmlHttp.onreadystatechange = function()
    {
        if (xmlHttp.readyState == 4)
		{
		    var func = new Array();
		    var execFun;
		    func.push(xmlHttp.status == 200 ? success : failure);
		    
		    if(after)
		    {
		        func.push(after);
		    }
		    
		    for(var i = 0; i < func.length; i++)
		    {
		        execFun = typeof func[i] == "function" ? func[i] : new Function(func[i]);
		        execFun(xmlHttp);
		    }
		}
	}
    xmlHttp.send(param);
}


ND.Event = {};
//输入框内回车指定触发按钮事件
ND.Event.Enter = function(evt, btnID)
{
    evt = evt || event;
    if(evt.keyCode == 13)
    {
        document.getElementById(btnID).onclick();
    }
}


ND.Load = {};
//加载遮罩页面
ND.Load.Mark = function(msg, left, top)
{
    var mark = document.getElementById("loadMark");
    if(mark)
    {
        return;
    }
    mark = document.createElement("div");
    mark.id = "loadMark";
    mark.style.height = screen.availHeight + "px";
    
    //背景
    var back = document.createElement("div");
    back.className = "back";
    
    //内容
    var container = document.createElement("div");
    container.className = "container";
    left = left ? left + "px" : (document.documentElement.clientWidth - 150) / 2 + "px";
    top = top ? top + "px" : (document.documentElement.clientHeight - 30) / 2 + "px";
    container.style.left = left;
    container.style.top = top;
    container.innerHTML = msg;
    
    mark.appendChild(back);
    mark.appendChild(container);
    document.body.appendChild(mark);
}
//取消加载遮罩
ND.Load.UnMark = function()
{
    var mark = document.getElementById("loadMark");
    if(mark)
    {
        mark.parentNode.removeChild(mark);
    }
}


//AJAX提交后执行验证
ND.Success = {};
ND.Success.Check = function(xml)
{
    var msgKey;
    var msgContent;
    if(ND.Brower.IsIE)
    {
        msgKey = xml.selectSingleNode("result/key").text;
        msgContent = xml.selectSingleNode("result/content").text;
    }
    else
    {
        msgKey = xml.getElementsByTagName("key")[0].firstChild.nodeValue;
        msgContent = xml.getElementsByTagName("content")[0].firstChild.nodeValue;
    }
    switch(msgKey)
    {
        case "99":
            //未登录
            var login = new ND.Login();
            login.Create();
            login = null;
            break;
        case "0":
            //失败
            alert(msgContent);
            window.location.reload();
            break;
        case "1":
            //成功
            return true;
    }
    
    return false;
}


//设置是否继承事件并发
ND.CancelBubble = function(evt, isCancel)
{
    evt = evt || event;
    isCancel = isCancel == undefined ? true : isCancel;
    evt.cancelBubble = isCancel;
}

//返回flase
ND.ReturnFalse = function()
{
    return false;
}

//页面卸载
ND.UnLoad = function()
{
    if(ND.Brower.IsIE)
    {
        CollectGarbage();
    }
    
    ND = null;
}

//原型
String.prototype.Format = function()
{
    var str = this;
    var reg = //{/d/}/g;
    var strReg = str.match(reg);
    var index;
    for(var i = 0; i < strReg.length; i++)
    {
        index = parseInt(strReg[i].substring(1, strReg[i].length - 1));
        str = str.replace(strReg[i], arguments[index]);
    }
    
    return str;
}
//格式化时间为指定格式字符串
Date.prototype.Format = function(format)
{
    var o = 
    {
        "M+" : this.getMonth()+1, //month
        "d+" : this.getDate(),    //day
        "h+" : this.getHours(),   //hour
        "m+" : this.getMinutes(), //minute
        "s+" : this.getSeconds(), //second
        "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
        "S" : this.getMilliseconds() //millisecond
    }
    if(/(y+)/.test(format))
    {
        format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
    }
    for(var k in o)
    {
        if(new RegExp("("+ k +")").test(format))
        {
            format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] :("00"+ o[k]).substr((""+ o[k]).length));
        }
    }
    return format;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值