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