var Namespace = new Object(); Namespace.register = function(path) { var arr = path.split("."); var ns = ""; for ( var i = 0; i < arr.length; i++) { if (i > 0) ns += "."; ns += arr[i]; eval("if(typeof(" + ns + ") == 'undefined') " + ns + " = new Object();"); } }; jQuery.extend({ /** * 根據名稱全選或反選復選框。 * * @param name * @param checked */ checkAll : function(name, checked) { $("input[name='" + name + "']").attr("checked", checked); }, /** * 根據復選框的名稱獲取選中值,使用逗號分隔。 * * @param name * @returns {String} */ getChkValue : function(name) { var str = ""; $('input[type="checkbox"][name=' + name + ']').each(function() { if ($(this).attr('checked')) { str += $(this).val() + ","; } }); if (str != "") str = str.substring(0, str.length - 1); return str; }, /** * 根據名稱獲取下拉框的列表的值,使用逗號分隔。 * * @param name * @returns {String} */ getSelectValue : function(name) { var str = ""; $('select[name=' + name + '] option').each(function() { str += $(this).val() + ","; }); if (str != "") str = str.substring(0, str.length - 1); return str; }, copyToClipboard : function(txt) { if (window.clipboardData) { window.clipboardData.clearData(); window.clipboardData.setData("Text", txt); return true; } else if (navigator.userAgent.indexOf("Opera") != -1) { window.location = txt; return false; } else if (window.netscape) { try { netscape.security.PrivilegeManager .enablePrivilege("UniversalXPConnect"); } catch (e) { alert($lang.tip.msg,$lang_js.util.copyToClipboard.netscape); return false; } var clip = Components.classes['@mozilla.org/widget/clipboard;1'] .createInstance(Components.interfaces.nsIClipboard); if (!clip) return false; var trans = Components.classes['@mozilla.org/widget/transferable;1'] .createInstance(Components.interfaces.nsITransferable); if (!trans) return false; trans.addDataFlavor('text/unicode'); var str = Components.classes["@mozilla.org/supports-string;1"] .createInstance(Components.interfaces.nsISupportsString); var copytext = txt; str.data = copytext; trans.setTransferData("text/unicode", str, copytext.length * 2); var clipid = Components.interfaces.nsIClipboard; if (!clip) return false; clip.setData(trans, null, clipid.kGlobalClipboard); return true; } else { alert($lang.tip.msg,$lang_js.util.copyToClipboard.notCopy); return false; } }, /** * 拷貝指定文本框的值。 * * @param objId */ copy : function(objId) { var str = $("#" + objId).val(); var rtn = jQuery.copyToClipboard(str); if (rtn) { alert($lang_js.util.copy.success); } }, /** * 判斷是否是IE瀏覽器 * * @returns {Boolean} */ isIE : function() { var appName = navigator.appName; var idx = appName.indexOf("Microsoft"); return idx == 0; }, /** * 判斷是否是IE6瀏覽器 * * @returns {Boolean} */ isIE6 : function() { if(($.browser.msie && $.browser.version =='6.0') &&!$.support.style) return true; return false; }, /** * 序列化xmldom節點為一個xml。 用法: var sb=new StringBuffer(); var * str=jQuery.getChildXml(node,sb); * * @param node * xmldom節點。 * @param sb * @returns */ getChildXml : function(node, sb) { var nodes = node.childNodes; var len = nodes.length; for ( var i = 0; i < len; i++) { var childNode = nodes[i]; if (childNode.nodeType != 1) continue; var childNodeName = childNode.nodeName; sb.append("<" + childNodeName + " "); var attrs = childNode.attributes; for ( var k = 0; k < attrs.length; k++) { var attr = attrs[k]; sb.append(" " + attr.name + "=\"" + attr.value + "\" "); } sb.append(">"); $.getChildXml(childNode, sb); sb.append("</" + childNodeName + ">"); } }, /** * 根據xmlnode序列化xml * * @param node * xmldom節點。 * @returns */ getChildXmlByNode : function(node) { var sb = new StringBuffer(); jQuery.getChildXml(node, sb); return sb.toString(); }, /** * 根據xml節點,返回該節點的xml屬性。 返回值通過參數ary獲取。 用法: var node; var ary=new * Array(); $.getAttrXml(node,ary); * * @param node * @param ary */ getAttrXml : function(node, ary) { var nodes = node.childNodes; var len = nodes.length; for ( var i = 0; i < len; i++) { var childNode = nodes[i]; if (childNode.nodeType != 1) continue; var attrs = childNode.attributes; var obj = new Object(); for ( var k = 0; k < attrs.length; k++) { var attr = attrs[k]; obj[attr.name] = attr.value; } ary.push(obj); $.getAttrXml(childNode, ary); } }, /** * <img src="img/logo.png" onload="$.fixPNG(this);"/> * 解決圖片在ie中背景透明的問題。 * * @param imgObj */ fixPNG : function(imgObj) { var arVersion = navigator.appVersion.split("MSIE"); var version = parseFloat(arVersion[1]); if ((version >= 5.5) && (version < 7) && (document.body.filters)) { var imgID = (imgObj.id) ? "id='" + imgObj.id + "' " : ""; var imgClass = (imgObj.className) ? "class='" + imgObj.className + "' " : ""; var imgTitle = (imgObj.title) ? "title='" + imgObj.title + "' " : "title='" + imgObj.alt + "' "; var imgStyle = "display:inline-block;" + imgObj.style.cssText; var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style=\"" + "width:" + imgObj.width + "px; height:" + imgObj.height + "px;" + imgStyle + ";" + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + "(src=\'" + imgObj.src + "\', sizingMethod='scale');\"></span>"; imgObj.outerHTML = strNewHTML; } }, /** * 獲取當前路徑中指定鍵的參數值。 * * @param key * @returns */ getParameter : function(key) { var parameters = unescape(window.location.search.substr(1)) .split("&"); for ( var i = 0; i < parameters.length; i++) { var paramCell = parameters[i].split("="); if (paramCell.length == 2 && paramCell[0].toUpperCase() == key.toUpperCase()) { return paramCell[1]; } } return new String(); }, /** * 根據年份和月份獲取某個月的天數。 * * @param year * @param month * @returns */ getMonthDays : function(year, month) { if (month < 0 || month > 11) { return 30; } var arrMon = new Array(12); arrMon[0] = 31; if (year % 4 == 0) { arrMon[1] = 29; } else { arrMon[1] = 28; } arrMon[2] = 31; arrMon[3] = 30; arrMon[4] = 31; arrMon[5] = 30; arrMon[6] = 31; arrMon[7] = 31; arrMon[8] = 30; arrMon[9] = 31; arrMon[10] = 30; arrMon[11] = 31; return arrMon[month]; }, /** * 計算日期為當年的第幾周 * * @param year * @param month * @param day * @returns */ weekOfYear : function(year, month, day) { // year 年 // month 月 // day 日 // 每周從周日開始 var date1 = new Date(year, 0, 1); var date2 = new Date(year, month - 1, day, 1); var dayMS = 24 * 60 * 60 * 1000; var firstDay = (7 - date1.getDay()) * dayMS; var weekMS = 7 * dayMS; date1 = date1.getTime(); date2 = date2.getTime(); return Math.ceil((date2 - date1 - firstDay) / weekMS) + 1; }, /** * 添加書簽 * * @param title * @param url * @returns {Boolean} */ addBookmark : function(title, url) { if (window.sidebar) { window.sidebar.addPanel(title, url, ""); } else if (document.all) { window.external.AddFavorite(url, title); } else if (window.opera && window.print) { return true; } }, /** * 設置cookie * * @param name * @param value */ setCookie : function(name, value) { var expdate = new Date(); var argv = arguments; var argc = arguments.length; var expires = (argc > 2) ? argv[2] : null; var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; if (expires != null) expdate.setTime(expdate.getTime() + (expires * 1000)); document.cookie = name + "=" + escape(value) + ((expires == null) ? "" : ("; expires=" + expdate .toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); }, /** * 刪除cookie * * @param name */ delCookie : function(name) { var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval = $.getCookie(name); document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString(); }, /** * 讀取cookie * * @param name * @returns */ getCookie : function(name) { var arg = name + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; while (i < clen) { var j = i + alen; if (document.cookie.substring(i, j) == arg) return $.getCookieVal(j); i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } return null; }, getCookieVal : function(offset) { var endstr = document.cookie.indexOf(";", offset); if (endstr == -1) endstr = document.cookie.length; return unescape(document.cookie.substring(offset, endstr)); }, /** * 通過js設置表單的值。 * * @param data */ setFormByJson : function(data) { var json = data; if (typeof (data) == "string") { json = jQuery.parseJSON(data); } for ( var p in json) { var value = json[p]; var frmElments = $("input[name='" + p+ "'],textarea[name='" + p + "']"); if (frmElments[0]) { frmElments.val(value); } } }, /** * 當鼠標移過表格行時,高亮表格行數據 */ highlightTableRows : function() { $("tr.odd,tr.even").hover(function() {$(this).addClass("over");}, function() {$(this).removeClass("over");}); }, /** * 選中行或反選 **/ selectTr:function(){ $("tr.odd,tr.even").each(function(){ $(this).bind("mousedown",function(event){ if(event.target.tagName=="TD") var strFilter='input:checkbox[class="pk"],input:radio[class="pk"]'; var obj=$(this).find(strFilter); if(obj.length==1){ var state=obj.attr("checked"); obj.attr("checked",!state); var isHashCheck = $("chkall"); if(isHashCheck){ obj.trigger("change"); } } } ); }); }, /** * 在數組中指定的位置插入數據。 * @param aryData * @param data * @param index */ insert : function(aryData,data,index){ if(isNaN(index) || index<0 || index>aryData.length) { aryData.push(data); }else{ var temp = aryData.slice(index); aryData[index]=data; for (var i=0; i<temp.length; i++){ aryData[index+1+i]=temp[i]; } } }, getFirstLower:function(v){ var value=""; if(v.indexOf('_')!=-1){ var ary=v.split('_'); for(var i=0;i<ary.length;i++){ var tmp=ary[i]; if(i==0){ value+=tmp.toLowerCase(); }else{ value+=tmp.substring(0,1).toUpperCase()+tmp.substring(1,tmp.length+1).toLowerCase(); } } }else{ value=v.toLowerCase(); } return value; }, getFirstUpper:function(v){ var value=""; if(v.indexOf('_')!=-1){ var ary=v.split('_'); for(var i=0;i<ary.length;i++){ var tmp=ary[i]; value+=tmp.substring(0,1).toUpperCase()+tmp.substring(1,tmp.length+1).toLowerCase(); } }else{ value=v.substring(0,1).toUpperCase()+v.substring(1,v.length+1).toLowerCase(); } return value; }, /** * * @param url * @returns */ openFullWindow:function(url){ var h=screen.availHeight-35; var w=screen.availWidth-5; var vars="top=0,left=0,height="+h+",width="+w+",status=no,toolbar=no,menubar=no,location=no,resizable=1,scrollbars=1"; var win=window.open(url,"",vars,true); return win; }, /** * 如果傳入的值是null、undefined或空字符串,則返回true。(可選的) * @param {Mixed} value 要驗證的值。 * @param {Boolean} allowBlank (可選的) 如果該值為true,則空字符串不會當作空而返回true。 * @return {Boolean} */ isEmpty : function(v, allowBlank){ return v === null || v === undefined || (!allowBlank ? v === '' : false); }, /** * 將數字轉換成人名幣大寫。 * @param currencyDigits * @returns */ convertCurrency:function(currencyDigits) { var MAXIMUM_NUMBER = 99999999999.99; var CN_ZERO = "零"; var CN_ONE = "壹"; var CN_TWO = "貳"; var CN_THREE = "叄"; var CN_FOUR = "肆"; var CN_FIVE = "伍"; var CN_SIX = "陸"; var CN_SEVEN = "柒"; var CN_EIGHT = "捌"; var CN_NINE = "玖"; var CN_TEN = "拾"; var CN_HUNDRED = "佰"; var CN_THOUSAND = "仟"; var CN_TEN_THOUSAND = "萬"; var CN_HUNDRED_MILLION = "億"; var CN_SYMBOL = ""; var CN_DOLLAR = "元"; var CN_TEN_CENT = "角"; var CN_CENT = "分"; var CN_INTEGER = "整"; var integral; var decimal; var outputCharacters; var parts; var digits, radices, bigRadices, decimals; var zeroCount; var i, p, d; var quotient, modulus; currencyDigits = currencyDigits.toString(); if (currencyDigits == "") { return ""; } if (currencyDigits.match(/[^,.\d]/) != null) { return ""; } if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) { return ""; } currencyDigits = currencyDigits.replace(/,/g, ""); currencyDigits = currencyDigits.replace(/^0+/, ""); if (Number(currencyDigits) > MAXIMUM_NUMBER) { return ""; } parts = currencyDigits.split("."); if (parts.length > 1) { integral = parts[0]; decimal = parts[1]; decimal = decimal.substr(0, 2); } else { integral = parts[0]; decimal = ""; } digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE); radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND); bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION); decimals = new Array(CN_TEN_CENT, CN_CENT); outputCharacters = ""; if (Number(integral) > 0) { zeroCount = 0; for (i = 0; i < integral.length; i++) { p = integral.length - i - 1; d = integral.substr(i, 1); quotient = p / 4; modulus = p % 4; if (d == "0") { zeroCount++; } else { if (zeroCount > 0) { outputCharacters += digits[0]; } zeroCount = 0; outputCharacters += digits[Number(d)] + radices[modulus]; } if (modulus == 0 && zeroCount < 4) { outputCharacters += bigRadices[quotient]; } } outputCharacters += CN_DOLLAR; } if (decimal != "") { for (i = 0; i < decimal.length; i++) { d = decimal.substr(i, 1); if (d != "0") { outputCharacters += digits[Number(d)] + decimals[i]; } } } if (outputCharacters == "") { outputCharacters = CN_ZERO + CN_DOLLAR; } if (decimal == "") { outputCharacters += CN_INTEGER; } outputCharacters = CN_SYMBOL + outputCharacters; return outputCharacters; }, /** * 轉換節點的tagName * 示例 var me=$(this); me=$.tagName(me,"span"); * @param self {object} 要轉換的單個節點 * @param tag {string} 轉換為tag類型節點 * @return {object} 轉換后的節點對象 */ tagName:function(self,tag){ var attrs=self.attributes, newTag=document.createElement(tag); for(var i=0,c;c=attrs[i++];){ if(!c.value||c.value=='null')continue; $(newTag).attr(c.name,c.value); } $(self).before($(newTag)); $(self).remove(); return $(newTag); }, /** * 在文本框指定的地方插入文本 * @param txtarea 文本框對象 * @param tag 文本 */ insertText : function(txtarea, tag) { // IE if (document.selection) { var theSelection = document.selection.createRange().text; if (!theSelection) { theSelection = tag; } txtarea.focus(); if (theSelection.charAt(theSelection.length - 1) == " ") { theSelection = theSelection.substring(0, theSelection.length - 1); document.selection.createRange().text = theSelection + " "; } else { document.selection.createRange().text = theSelection; } // Mozilla } else if (txtarea.selectionStart || txtarea.selectionStart == '0') { var startPos = txtarea.selectionStart; var endPos = txtarea.selectionEnd; var myText = (txtarea.value).substring(startPos, endPos); if (!myText) { myText = tag; } if (myText.charAt(myText.length - 1) == " ") { subst = myText.substring(0, (myText.length - 1)) + " "; } else { subst = myText; } txtarea.value = txtarea.value.substring(0, startPos)+ subst+ txtarea.value.substring(endPos,txtarea.value.length); txtarea.focus(); var cPos = startPos + (myText.length); txtarea.selectionStart = cPos; txtarea.selectionEnd = cPos; // All others } else { txtarea.value += tag; txtarea.focus(); } if (txtarea.createTextRange) txtarea.caretPos = document.selection.createRange().duplicate(); }, confirm:function(selector,message,callback){ $(selector).click(function(){ if($(this).hasClass('disabled')) return false; var ele=this; $.ligerDialog.confirm(message,$lang.tip.msg,function(rtn) { if(rtn){ if($.browser.msie){ $.gotoDialogPage(ele.href); } else{ location.href=ele.href; } } }); return false; }); }, /** * Dialog窗口跳轉 * @param {} url 地址 */ gotoDialogPage: function (url) { if($.browser.msie){ var a = document.createElement("a"); a.href=url; document.body.appendChild(a); a.click(); } else{ location.href=url; } }, /** * 克隆對象。 */ cloneObject:function(obj){ var o = obj.constructor === Array ? [] : {}; for(var i in obj){ if(obj.hasOwnProperty(i)){ o[i] = typeof obj[i] === "object" ? cloneObject(obj[i]) : obj[i]; } } return o; }, /** * 清除表單 */ clearQueryForm:function(){ $("input[name^='Q_'],select[name^='Q_']").each(function(){ $(this).val(''); }); }, getFileExtName:function(fileName){ var pos=fileName.lastIndexOf("."); if(pos==-1) return ""; return fileName.substring(pos +1); }, //轉成千分位。 comdify:function(v){ if(v&&v!=''){ n=v+""; var re=/\d{1,3}(?=(\d{3})+$)/g; var n1=n.trim().replace(/^(\d+)((\.\d+)?)$/,function(s,s1,s2){ return s1.replace(re,"$&,")+s2; }); return n1; } return v; }, toNumber:function(v){ if(v&&v!=''){ if(v.indexOf(',')==-1) return v; var ary=v.split(','); var val=ary.join(""); return val; } return 0; }, /** * 上下移動 * * @param {} * obj 上移的對象 * @param {} * isUp 是否上移 */ moveTr : function(obj, isUp) { var thisTr = $(obj).parents("tr"); if (isUp) { var prevTr = $(thisTr).prev(); if (prevTr) { thisTr.insertBefore(prevTr); } } else { var nextTr = $(thisTr).next(); if (nextTr) { thisTr.insertAfter(nextTr); } } }, getCurrentDate:function(){ var myDate=new Date(); var month=myDate.getMonth()+1; month=(month<10)?"0" + month:month; return myDate.getFullYear() +"-" + month + "-"+ myDate.getDate(); } }); /** * 功能:給url添加一個當前時間日期數值,使頁面不會被緩存。 */ String.prototype.getNewUrl = function() { // 如果url中沒有參數。 var time = new Date().getTime(); var url = this; //去除‘#’后邊的字符 if (url.indexOf("#") != -1) { var index=url.lastIndexOf("#",url.length-1); url=url.substring(0, index); } while(url.endWith("#")){ url=url.substring(0, url.length-1); } url=url.replace(/(\?|&)rand=\d*/g, ""); if (url.indexOf("?") == -1) { url += "?rand=" + time; } else { url += "&rand=" + time; } return url; }; /** * 功能:給url添加jsessionId 防止session丟失。 * @returns {String} */ String.prototype.getSessionUrl=function(){ //jsessionid var url = this; if(url.indexOf(";jsessionid=")!=-1){ return url; } if(url.indexOf("?")==-1){ url+=";jsessionid=" +__jsessionid; } else{ var aryUrl=url.split("?"); url=aryUrl[0] +";jsessionid=" +__jsessionId +"?" + aryUrl[1]; } return url; }; /** * 判斷字符串是否為空。 * * @returns {Boolean} */ String.prototype.isEmpty = function() { var rtn = (this == null || this == undefined || this.trim() == ''); return rtn; }; /** * 功能:移除首尾空格 */ String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); }; /** * 功能:移除左邊空格 */ String.prototype.lTrim = function() { return this.replace(/(^\s*)/g, ""); }; /** * 功能:移除右邊空格 */ String.prototype.rTrim = function() { return this.replace(/(\s*$)/g, ""); }; /** * 判斷結束是否相等 * * @param str * @param isCasesensitive * @returns {Boolean} */ String.prototype.endWith = function(str, isCasesensitive) { if (str == null || str == "" || this.length == 0 || str.length > this.length) return false; var tmp = this.substring(this.length - str.length); if (isCasesensitive == undefined || isCasesensitive) { return tmp == str; } else { return tmp.toLowerCase() == str.toLowerCase(); } }; /** * 判斷開始是否相等 * * @param str * @param isCasesensitive * @returns {Boolean} */ String.prototype.startWith = function(str, isCasesensitive) { if (str == null || str == "" || this.length == 0 || str.length > this.length) return false; var tmp = this.substr(0, str.length); if (isCasesensitive == undefined || isCasesensitive) { return tmp == str; } else { return tmp.toLowerCase() == str.toLowerCase(); } }; /** * 在字符串左邊補齊指定數量的字符 * * @param c * 指定的字符 * @param count * 補齊的次數 使用方法: var str="999"; str=str.leftPad("0",3); str將輸出 "000999" * @returns */ String.prototype.leftPad = function(c, count) { if (!isNaN(count)) { var a = ""; for ( var i = this.length; i < count; i++) { a = a.concat(c); } a = a.concat(this); return a; } return null; }; /** * 在字符串右邊補齊指定數量的字符 * * @param c * 指定的字符 * @param count * 補齊的次數 使用方法: var str="999"; str=str.rightPad("0",3); str將輸出 * "999000" * @returns */ String.prototype.rightPad = function(c, count) { if (!isNaN(count)) { var a = this; for ( var i = this.length; i < count; i++) { a = a.concat(c); } return a; } return null; }; /** * 對html字符進行編碼 用法: str=str.htmlEncode(); * * @returns */ String.prototype.htmlEncode = function() { return this.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/\"/g, """).replace(/\'/g, "'"); }; /** * 對html字符串解碼 用法: str=str.htmlDecode(); * * @returns */ String.prototype.htmlDecode = function() { return this.replace(/\&\;/g, '\&').replace(/\>\;/g, '\>').replace( /\<\;/g, '\<').replace(/\"\;/g, '\'').replace(/\&\#39\;/g, '\''); }; /** * 對json中的特殊字符進行轉義 */ String.prototype.jsonEscape = function(){ return this.replace(/\"/g, """).replace(/\n/g,"&nuot;"); }; /** * 對json中的特殊字符進行轉義 */ String.prototype.jsonUnescape = function(){ return this.replace(/"/g, "\"").replace(/&nuot;/g,"\n"); }; /** * 字符串替換 * * @param s1 * 需要替換的字符 * @param s2 * 替換的字符。 * @returns */ String.prototype.replaceAll = function(s1, s2) { return this.replace(new RegExp(s1, "gm"), s2); }; /** * 獲取url參數 * * @returns {object} */ String.prototype.getArgs = function() { var args = {}; if(this.indexOf("?")>-1){ var argStr = this.split("?")[1], argAry = argStr.split("&"); for(var i=0,c;c=argAry[i++];){ var pos = c.indexOf("="); if(pos==-1)continue; var argName = c.substring(0,pos), argVal = c.substring(pos+1); argVal = decodeURIComponent(argVal); args[argName] = argVal; } } return args; }; /** * var str=String.format("姓名:{0},性別:{1}","ray","男"); * alert(str); * @returns */ String.format=function(){ var template=arguments[0]; var args=arguments; var str=template.replace(/\{(\d+)\}/g,function(m,i){ var k=parseInt(i)+1; return args[k]; }); return str; }; /** * 字符串操作 使用方法: var sb=new StringBuffer(); sb.append("aa"); sb.append("aa"); var * str=sb.toString(); * * @returns {StringBuffer} */ function StringBuffer() { this.content = new Array; } StringBuffer.prototype.append = function(str) { this.content.push(str); }; StringBuffer.prototype.toString = function() { return this.content.join(""); }; /** * 日期格式化 * 格式 YYYY/yyyy/YY/yy 表示年份 * MM/M 月份 * W/w 星期 * dd/DD/d/D 日期 * hh/HH/h/H 時間 * mm/m 分鍾 * ss/SS/s/S 秒 */ Date.prototype.Format = function(formatStr) { if(!formatStr)return; var str = formatStr; var Week = ['日','一','二','三','四','五','六']; str=str.replace(/yyyy|YYYY/,this.getFullYear()); str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():'0' + (this.getYear() % 100)); str=str.replace(/MM/,(this.getMonth()+1)>9?(this.getMonth()+1).toString():'0' + (this.getMonth()+1)); str=str.replace(/M/g,(this.getMonth()+1)); str=str.replace(/w|W/g,Week[this.getDay()]); str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0' + this.getDate()); str=str.replace(/d|D/g,this.getDate()); str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0' + this.getHours()); str=str.replace(/h|H/g,this.getHours()); str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0' + this.getMinutes()); str=str.replace(/m/g,this.getMinutes()); str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0' + this.getSeconds()); str=str.replace(/s|S/g,this.getSeconds()); return str; }; /** * 求兩個時間的天數差 日期格式為 yyyy-MM-dd 或 YYYY-MM-dd HH:mm:ss */ function daysBetween(DateOne,DateTwo) { var dayOne = ''; var dayTwo = ''; var timeOne = ''; var timeTwo = ''; if(DateOne!=null&&DateOne!=''){ var arrOne = DateOne.split(' '); dayOne = arrOne[0]; if(arrOne.length>1){ timeOne = arrOne[1]; } } if(DateTwo!=null&&DateTwo!=''){ var arrTwo = DateTwo.split(' '); dayTwo = arrTwo[0]; if(arrTwo.length>1){ timeTwo = arrTwo[1]; } } var OneMonth = 0; var OneDay = 0; var OneYear = 0; if(dayOne!=null&&dayOne!=''){ var arrDate = dayOne.split('-'); OneYear = parseInt(arrDate[0],10); OneMonth = parseInt(arrDate[1],10); OneDay = parseInt(arrDate[2],10); } var TwoMonth = 0; var TwoDay = 0; var TwoYear = 0; if(dayTwo!=null&&dayTwo!=''){ var arrDate = dayTwo.split('-'); TwoYear = parseInt(arrDate[0],10); TwoMonth = parseInt(arrDate[1],10); TwoDay = parseInt(arrDate[2],10); } var OneHour = 0; var OneMin = 0; var OneSec = 0; if(timeOne!=null&&timeOne!=''){ var arrTiem = timeOne.split(':'); OneHour = parseInt(arrTiem[0]); OneMin = parseInt(arrTiem[1]); OneSec = parseInt(arrTiem[2]); } var TwoHour = 0; var TwoMin = 0; var TwoSec = 0; if(timeTwo!=null&&timeTwo!=''){ var arrTiem = timeTwo.split(':'); TwoHour = parseInt(arrTiem[0]); TwoMin = parseInt(arrTiem[1]); TwoSec = parseInt(arrTiem[2]); } var vflag = TwoYear>OneYear?true:false; if(!vflag){ vflag = TwoMonth>OneMonth?true:false; if(!vflag){ vflag = TwoDay>OneDay?true:false; if(!vflag){ if(OneDay==TwoDay){ vflag = TwoHour>OneHour?true:false; if(!vflag){ vflag = TwoMin>OneMin?true:false; if(!vflag){ vflag = TwoSec>=OneSec?true:false; } } }else{ return false; } }else{ return true; } } } return vflag; }; /** * 加載多個Script * @param resources script file array :['file1.js','file2.js'] * @param callback function * @returns void */ jQuery.getMutilScript = function( resources, callback ) { var getScript = function(url,callback){ $.ajax({ url: url, dataType: "script", success: callback, async:false }).done(function(){ callback && callback(); }); }; var // reference declaration & localization length = resources.length, handler = function() { counter++; }, deferreds = [], counter = 0, idx = 0; for ( ; idx < length; idx++ ) { deferreds.push( getScript( resources[ idx ], handler ) ); } jQuery.when(deferreds ).done(function(){ callback && callback(); }); }; $(function(){ if($.browser){ if($.browser.version=='6.0'){ $("a.tipinfo").each(function(){ $(this).mouseover(function(){ $("span",$(this)).show(); }); $(this).mouseleave(function(){ $("span",$(this)).hide(); }); }); }} }); jQuery.getWindowRect = function() { var myWidth = 0, myHeight = 0; if( typeof( window.innerWidth ) == 'number' ) { //Non-IE myWidth = window.innerWidth; myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myWidth = document.documentElement.clientWidth; myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myWidth = document.body.clientWidth; myHeight = document.body.clientHeight; } return { height:myHeight, width:myWidth }; } //禁用刷新。通過傳入瀏覽器類型 來指定禁用某個瀏覽器的刷新 function forbidF5(exp) { var currentExplorer = window.navigator.userAgent; //ie "MSIE" ,, firefox "Firefox" ,,Chrome "Chrome",,Opera "Opera",,Safari "Safari" if (currentExplorer.indexOf(exp) >= 0) { document.onkeydown = function(e) { var ev = window.event || e; var code = ev.keyCode || ev.which; if (code == 116) { ev.keyCode ? ev.keyCode = 0 : ev.which = 0; cancelBubble = true; return false; }else{ return forbidBackSpace(e); } } } } 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; } /** * 調整點擊資源菜單時 tab導航欄向上浮動的問題; */ function justifyMargin(height,level,time){ if(window.navigator.userAgent.indexOf("Chrome")>=0){ window.setTimeout(function(){ var tabLinks = ""; if(level==3){ tabLinks = $("#framecenter > div.l-tab-links",parent.parent.document); if($(".l-layout-left",parent.document)[0] && $("iframe",parent.document).length !=1) return; }else{ tabLinks = $("#framecenter > div.l-tab-links",parent.document) } tabLinks.css("margin-top",parseInt(tabLinks.css("margin-top"))+ height +"px"); },time||0) } } /** * 修復所有樹狀結構右鍵菜單超出屏幕的問題 * @param e 傳入點擊事件event */ function justifyRightClickPosition(e){ var offsetHeight=parseInt($(".l-menu").eq(0).height()); var ePageY=parseInt(e.pageY); var bodyOffsetHeight=parseInt(document.body.offsetHeight); var h=$(window).height() ; if(offsetHeight+ePageY>=bodyOffsetHeight-10){ e.pageY=ePageY-offsetHeight; } } /** * 修復list頁面滾動條的bug ,用法 在對應的頁面 的body上面加上 onload事件 如 : <body style="overflow: hidden;" onload="changeHeight()"> */ function changeScrollHeight(noNeedFoldHeight,time){ window.setTimeout(function(){ $.setCookie("noNeedFoldHeight", noNeedFoldHeight||""); if(noNeedFoldHeight) return; $("body").css("overflow-y","hidden"); var currentTable=$(".table-grid.table-list"); var tableBody=currentTable.parent(),foldHeight=0; if(!parent.document.querySelectorAll("#logoImg")[0])foldHeight = $("#searchForm").height(); var moreHeight = $('.panel-search').attr("moreHeight")||0; // tableBody.height(($(window).height()-tableBody[0].offsetTop-$(".index_menu",$(parent.document)).height()/2-foldHeight-moreHeight)*0.9); tableBody.height(($(window).height()-tableBody[0].offsetTop-foldHeight-moreHeight)*0.9); tableBody.css("overflow-y","scroll"); tableBody.css("border","1px solid #A0BDBB"); currentTable.css("margin-top","0px"); },time||10) } //禁用鍵盤的BackSpace 回退鍵 //處理鍵盤事件 禁止后退鍵(Backspace)密碼或單行、多行文本框除外 function forbidBackSpace(e) { var ev = e || window.event; //獲取event對象 var obj = ev.target || ev.srcElement; //獲取事件源 var t = obj.type || obj.getAttribute('type'); //獲取事件源類型 //獲取作為判斷條件的事件類型 var vReadOnly = obj.readOnly; var vDisabled = obj.disabled; //處理undefined值情況 vReadOnly = (vReadOnly == undefined) ? false : vReadOnly; vDisabled = (vDisabled == undefined) ? true : vDisabled; //當敲Backspace鍵時,事件源類型為密碼或單行、多行文本的, //並且readOnly屬性為true或disabled屬性為true的,則退格鍵失效 var flag1 = ev.keyCode == 8 && (t == "password" || t == "text" || t == "textarea") && (vReadOnly == true || vDisabled == true); //當敲Backspace鍵時,事件源類型非密碼或單行、多行文本的,則退格鍵失效 var flag2 = ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea"; //判斷 if (flag2 || flag1) return false; } //禁止后退鍵 作用於IE、Chrome document.onkeydown = forbidBackSpace; //測試使用 String.prototype.sayHello=function(){ alert("hello----chenrd"); };