Javascript Common Tools Class
/*
Javascript Common Tools Class
Email : Daniel.Chow.Tech@Hotmail.Com
Blog : http://www.cnblogs.com/DanielChow
*/
Javascript Common Tools Class
Email : Daniel.Chow.Tech@Hotmail.Com
Blog : http://www.cnblogs.com/DanielChow
*/
// 2010-2-20 update
var Js = new Object;
Js.IsDebug = true;
Js.Domain = "127.0.0.1";
Js.NetUrl = "http://127.0.0.1";
Js.Locale = "/";
Js.CopyRight = "(C) Your.COM";
Js.Event = new Object;
Js.Event.add = function(o, t, f) {
if (o.addEventListener) {
o.addEventListener(t, f, false);
} else if (o.attachEvent) {
o.attachEvent("on" + t, f);
} else {
o["on" + t] = f;
}
};
Js.Event.remove = function(o, t, f) {
if (o.removeEventListener) {
o.removeEventListener(t, f, false);
} else if (o.detachEvent) {
o.detachEvent("on" + t, f);
} else {
o["on" + t] = null;
}
};
/*compatible in IE6+,ff3.0,chrome,oprea*/
Js.floatElement = function(Id, Position) {
_bodyfrm = (document.compatMode.toLowerCase() == "css1compat") ? document.documentElement : document.body;
_adst = document.getElementById(Id).style;_adst.position = "absolute"; _intWidth = _adst.width.replace("px", ""); _intHeight = _adst.height.replace("px", "");
_move(Position);window.onscroll = window.onresize = function() {_move(Position);};
function _move(Position) {
switch (Position) {
case "rightbottom": _adst.left = (_bodyfrm.scrollLeft + _bodyfrm.clientWidth - _intWidth) + "px";_adst.top = (_bodyfrm.clientHeight + _bodyfrm.scrollTop - _intHeight) + "px";break;
case "leftbottom": _adst.left = "0px";_adst.top = (_bodyfrm.clientHeight + _bodyfrm.scrollTop - _intHeight) + "px";break;
case "righttop": _adst.left = (_bodyfrm.scrollLeft + _bodyfrm.clientWidth - _intWidth) + "px";_adst.top = _bodyfrm.scrollTop + "px"; break;
case "lefttop": _adst.left = "0px"; _adst.top = _bodyfrm.scrollTop + "px"; break;
};
};
};
Js.Guid = function() {
var guid = "";
for (var i = 1; i <= 32; i++) {
var n = Math.floor(Math.random() * 16.0).toString(16);
guid += n;
if ((i == 8) || (i == 12) || (i == 16) || (i == 20))
guid += "-";
}
return guid;
};
Js.SuggestStr = function(len, IsAC) {
//include additional characters
var AC = 'abcdefhijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWYXZ~!@$^*+-|/';
var noAC = 'abcdefhijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWYXZ';
function returnStr(list, len) {
var re = '';
for (i = 0; i < len; i++) {
re += list.charAt(Math.floor(Math.random() * list.length))
}
return re;
}
return IsAC ? returnStr(AC, len) : returnStr(noAC, len);
};
Js.Str2XML = function(str) {
if (window.ActiveXObject) {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(str);
return xmlDoc;
} else {
parser = new DOMParser();
xmlDoc = parser.parseFromString(str, "text/xml");
return xmlDoc;
}
};
Js.XML2Str = function(xmlObject) {
if (window.ActiveXObject) {
return xmlObject.xml;
} else {
return (new XMLSerializer()).serializeToString(xmlObject);
}
};
Js.Str2Json = function(str) {
return eval('(' + str + ')');
}
Js.ErrorHandler = function(msg, url, l) {
//if (Js.IsDebug) {
// // for debug
// var txt = "";
// txt = "本页中存在错误。\n\n"
// txt += "错误:" + msg + "\n"
// txt += "URL: " + url + "\n"
// txt += "行:" + l + "\n\n"
// txt += "点击“确定”继续。\n\n"
// alert(txt);
//}
return false;
// false , page response errors directly
// true , var script above to handle errors
// or you can save errors to server (to create logs file)
};
Js.Url = {
encode: function(string) {
return escape(this._utf8_encode(string));
},
decode: function(string) {
return this._utf8_decode(unescape(string));
},
request:function(string)
{
var url = location.href; var paraObj = {}; var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
for (i = 0; j = paraString[i]; i++) { paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);}
var returnValue = paraObj[string.toLowerCase()];
if (typeof (returnValue) == "undefined") { return ""; } else { return returnValue; }
},
// private method
_utf8_encode: function(string) {
string = string.replace(/\r\n/g, "\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if ((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
},
_utf8_decode: function(utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while (i < utftext.length) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if ((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i + 1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}
else {
c2 = utftext.charCodeAt(i + 1);
c3 = utftext.charCodeAt(i + 2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}
Js.IsDebug = true;
Js.Domain = "127.0.0.1";
Js.NetUrl = "http://127.0.0.1";
Js.Locale = "/";
Js.CopyRight = "(C) Your.COM";
Js.Event = new Object;
Js.Event.add = function(o, t, f) {
if (o.addEventListener) {
o.addEventListener(t, f, false);
} else if (o.attachEvent) {
o.attachEvent("on" + t, f);
} else {
o["on" + t] = f;
}
};
Js.Event.remove = function(o, t, f) {
if (o.removeEventListener) {
o.removeEventListener(t, f, false);
} else if (o.detachEvent) {
o.detachEvent("on" + t, f);
} else {
o["on" + t] = null;
}
};
/*compatible in IE6+,ff3.0,chrome,oprea*/
Js.floatElement = function(Id, Position) {
_bodyfrm = (document.compatMode.toLowerCase() == "css1compat") ? document.documentElement : document.body;
_adst = document.getElementById(Id).style;_adst.position = "absolute"; _intWidth = _adst.width.replace("px", ""); _intHeight = _adst.height.replace("px", "");
_move(Position);window.onscroll = window.onresize = function() {_move(Position);};
function _move(Position) {
switch (Position) {
case "rightbottom": _adst.left = (_bodyfrm.scrollLeft + _bodyfrm.clientWidth - _intWidth) + "px";_adst.top = (_bodyfrm.clientHeight + _bodyfrm.scrollTop - _intHeight) + "px";break;
case "leftbottom": _adst.left = "0px";_adst.top = (_bodyfrm.clientHeight + _bodyfrm.scrollTop - _intHeight) + "px";break;
case "righttop": _adst.left = (_bodyfrm.scrollLeft + _bodyfrm.clientWidth - _intWidth) + "px";_adst.top = _bodyfrm.scrollTop + "px"; break;
case "lefttop": _adst.left = "0px"; _adst.top = _bodyfrm.scrollTop + "px"; break;
};
};
};
Js.Guid = function() {
var guid = "";
for (var i = 1; i <= 32; i++) {
var n = Math.floor(Math.random() * 16.0).toString(16);
guid += n;
if ((i == 8) || (i == 12) || (i == 16) || (i == 20))
guid += "-";
}
return guid;
};
Js.SuggestStr = function(len, IsAC) {
//include additional characters
var AC = 'abcdefhijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWYXZ~!@$^*+-|/';
var noAC = 'abcdefhijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWYXZ';
function returnStr(list, len) {
var re = '';
for (i = 0; i < len; i++) {
re += list.charAt(Math.floor(Math.random() * list.length))
}
return re;
}
return IsAC ? returnStr(AC, len) : returnStr(noAC, len);
};
Js.Str2XML = function(str) {
if (window.ActiveXObject) {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(str);
return xmlDoc;
} else {
parser = new DOMParser();
xmlDoc = parser.parseFromString(str, "text/xml");
return xmlDoc;
}
};
Js.XML2Str = function(xmlObject) {
if (window.ActiveXObject) {
return xmlObject.xml;
} else {
return (new XMLSerializer()).serializeToString(xmlObject);
}
};
Js.Str2Json = function(str) {
return eval('(' + str + ')');
}
Js.ErrorHandler = function(msg, url, l) {
//if (Js.IsDebug) {
// // for debug
// var txt = "";
// txt = "本页中存在错误。\n\n"
// txt += "错误:" + msg + "\n"
// txt += "URL: " + url + "\n"
// txt += "行:" + l + "\n\n"
// txt += "点击“确定”继续。\n\n"
// alert(txt);
//}
return false;
// false , page response errors directly
// true , var script above to handle errors
// or you can save errors to server (to create logs file)
};
Js.Url = {
encode: function(string) {
return escape(this._utf8_encode(string));
},
decode: function(string) {
return this._utf8_decode(unescape(string));
},
request:function(string)
{
var url = location.href; var paraObj = {}; var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
for (i = 0; j = paraString[i]; i++) { paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);}
var returnValue = paraObj[string.toLowerCase()];
if (typeof (returnValue) == "undefined") { return ""; } else { return returnValue; }
},
// private method
_utf8_encode: function(string) {
string = string.replace(/\r\n/g, "\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if ((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
},
_utf8_decode: function(utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while (i < utftext.length) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if ((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i + 1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}
else {
c2 = utftext.charCodeAt(i + 1);
c3 = utftext.charCodeAt(i + 2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}
--------------------------------------------------------------------------
Daniel Chow's Blog - 不管你在哪里,都要有一颗创业的心!
http://www.cnblogs.com/DanielChow/