///公共类
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;
}