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
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");
};