?? calendar.js
字號:
var m = date.getMonth() + 1;
if(m < 10) m = "0" + m;
return m;
}
function week(date) {
switch(date.getDay()) {
case 0: return "星期日";
case 1: return "星期一";
case 2: return "星期二";
case 3: return "星期三";
case 4: return "星期四";
case 5: return "星期五";
case 6: return "星期六";
default: return "null";
}
}
function day(date) {
var d = date.getDate();
if(d < 10) d = "0" + d;
return d;
}
function hour(date) {
var h = date.getHours();
if(h < 10) h = "0" + h;
return h;
}
function minute(date) {
var m = date.getMinutes();
if(m < 10) m = "0" + m;
return m;
}
function second(date) {
var s = date.getSeconds();
if(s < 10) s = "0" + s;
return s;
}
function formatDate(date,format) {
format = format.replace("yyyy",year(date));
format = format.replace("yy",year(date).toString().substring(2,4));
format = format.replace("MM",month(date));
format = format.replace("dd",day(date));
format = format.replace("HH",hour(date));
format = format.replace("mm",minute(date));
format = format.replace("ss",second(date));
return format;
}
function getDays(date) {
var date_this = new Date(date.getFullYear(),date.getMonth(),1);
var date_next = new Date(date.getFullYear(),date.getMonth() + 1,1);
var days = (date_next.getTime() - date_this.getTime())/1000/3600/24;
return days;
}
function AutoDate(obj,format) {
switch(format) {
case "yyyy/MM/dd HH:mm":
switch(obj.value.length) {
case 4:case 7:
obj.value += "/";return;
case 10:
obj.value += " ";return;
case 13:
obj.value += ":";return;
}
break;
case "MM/dd HH:mm":
switch(obj.value.length) {
case 2:
obj.value += "/";return;
case 5:
obj.value += " ";return;
case 8:
obj.value += ":";return;
}
break;
case "yyyy/MM/dd":
switch(obj.value.length) {
case 4:case 7:
obj.value += "/";return;
}
break;
case "yyyy-MM-dd":
switch(obj.value.length) {
case 4:case 7:
obj.value += "-";return;
case 10:
if(!isDate(obj.value,"yyyy-MM-dd")) {
alert("日期類型錯誤!");
srcElm.value = "";
srcElm.focus();
return;
}
}
break;
case "yyyy/MM":
switch(obj.value.length) {
case 4:
obj.value += "/";return;
}
break;
}
}
function isDate(str,format) {
if(str.length != format.length) return false;
var reg;
switch(format) {
case "yyyy/MM/dd HH:mm":
reg = /((200\d\/((01|03|05|07|08|10|12)\/(0[1-9]|1\d|2\d|3[0-1]))|((04|06|09|11)\/(0[1-9]|1\d|2\d|30))|(02\/(0[1-9]|1\d|2[0-8])))|(200(?:0|4)\/02\/29)) (0\d|1\d|2[0-3]):[0-5]\d/;
break;
case "yyyy/MM/dd":
reg = /((200\d\/((01|03|05|07|08|10|12)\/(0[1-9]|1\d|2\d|3[0-1]))|((04|06|09|11)\/(0[1-9]|1\d|2\d|30))|(02\-(0[1-9]|1\d|2[0-8])))|(200(?:0|4)\/02\/29))/;
break;
case "yyyy-MM-dd":
reg = /(200\d-((01|03|05|07|08|10|12)-(0[1-9]|1\d|2\d|3[0-1]))|((04|06|09|11)-(0[1-9]|1\d|2\d|30))|(02-(0[1-9]|1\d|2[0-8])))|(200(?:0|4)-02-29)/;
break;
}
if(str.search(reg) != -1) return true;
return false;
}
function isDateEx(str,format) {
if(str.length != format.length) return false;
var reg;
switch(format) {
case "yyyy/MM/dd HH:mm":
reg = /((200\d\/((01|03|05|07|08|10|12)\/(0[1-9]|1\d|2\d|3[0-1]))|((04|06|09|11)\/(0[1-9]|1\d|2\d|30))|(02\/(0[1-9]|1\d|2[0-8])))|(200(?:0|4)\/02\/29)) (0\d|1\d|2[0-3]):[0-5]\d/;
break;
case "yyyy/MM/dd":
reg = /((200\d\/((01|03|05|07|08|10|12)\/(0[1-9]|1\d|2\d|3[0-1]))|((04|06|09|11)\/(0[1-9]|1\d|2\d|30))|(02\-(0[1-9]|1\d|2[0-8])))|(200(?:0|4)\/02\/29))/;
break;
case "yyyy-MM-dd":
reg = /(200\d-((01|03|05|07|08|10|12)-(0[1-9]|1\d|2\d|3[0-1]))|((04|06|09|11)-(0[1-9]|1\d|2\d|30))|(02-(0[1-9]|1\d|2[0-8])))|(200(?:0|4)-02-29)/;
break;
}
if(str.search(reg) != -1) return true;
return false;
}
function addTime(time,type) {
var limit = 60;
if(type == "hour") limit = 24;
time = parseInt(time,10) + 1;
if(time < 10) time = "0" + time;
if(time == limit) time = "00";
return time;
}
function decTime(time,type) {
var limit = 60;
if(type == "hour") limit = 24;
time = parseInt(time,10) - 1;
if(time < 0) time = limit - 1;
if(time < 10) time = "0" + time;
return time;
}
//origin from utility.js
Utility = function() {}
/**
* 得到[obj]的絕對位置(top)
*/
Utility.prototype.getElementTop = function(obj) {
try {
var t = obj.offsetTop;
while(obj = obj.offsetParent) t += obj.offsetTop;
return t;
}
catch(e) {
alert("Err Utility 0001:\r\n" + e);
return 0;
}
}
/**
* 得到[obj]的絕對位置(left)
*/
Utility.prototype.getElementLeft = function(obj) {
try {
var l = obj.offsetLeft;
while(obj = obj.offsetParent) l += obj.offsetLeft;
return l;
}
catch(e) {
alert("Err Utility 0002:\r\n" + e);
return 0;
}
}
/**
* 判斷數字[num]是否在[lower]和[upper]之間
*/
Utility.prototype.isNum = function(num,lower,upper) {
try {
if(isNaN(num)) return false;
if(num < lower) return false;
if(num > upper) return false;
return true;
}
catch(e) {
alert("Err Utility 1001:\r\n" + e);
return false;
}
}
/**
* 判斷數字[num]是否是整數
*/
Utility.prototype.isInt = function(num) {
try {
if(parseInt(num,10) == num) return true;
return false;
}
catch(e) {
alert("Err Utility 1002:\r\n" + e);
return false;
}
}
/**
* 得到[obj]的標簽為[tagName]的節點
*/
Utility.prototype.getParent = function(obj,tagName) {
try {
var Elm = obj;
while(Elm && Elm.tagName != tagName) {
Elm = Elm.parentElement;
}
return Elm;
}
catch(e) {
alert("Err Utility 2001:\r\n" + e);
return null;
}
}
/**
* 改變節點[node]的屬性[attr]的序號,序號以[div]分割,增加[num]
*/
Utility.prototype.changeAttr = function(node,attr,div,num) {
try {
var oColl_1 = attr.split(".");
var oColl_2 = node.getAttribute(oColl_1[0]).split(div);
if(node.getAttribute(oColl_1[0]).search(div) == -1) return;
if(oColl_1.length > 1) {
for(var i=1;i<oColl_1.length;i++) {
for(var j=0;j<oColl_2.length;j++) {
if(this.isInt(oColl_1[i]) && this.isInt(oColl_2[j]) && oColl_1[i] == j) {
oColl_2[j] = parseInt(oColl_2[j],10) + parseInt(num,10);
}
}
}
node.setAttribute(oColl_1[0],oColl_2.join(div));
return;
}
var prefix = oColl_2[0];
var postfix = oColl_2[1];
if(!this.isInt(postfix)) return;
postfix = parseInt(postfix,10) + parseInt(num,10);
if(node.tagName == "A" && attr == "name") {
var oA = document.createElement("<A NAME='" + prefix + "_" + postfix + "'></A>");
node.outerHTML = oA.outerHTML;
}
if(attr == "href") {
prefix = prefix.substring(prefix.search("#"),prefix.length);
prefix = location.href.substring(0,location.href.search("#")) + prefix;
}
node.setAttribute(attr,prefix + div + postfix);
} catch(e) {}
}
/**
* 在[obj]的[where]旁插入[node],并改變節點[node]的[ary]中的屬性的序號,序號以[div]分割,增加[num]
*/
Utility.prototype.insertNode = function(obj,where,node,ary,div,num,clear) {
var oColl = node.all;
try {
for(var k=0;k<oColl.length;k++) {
if(clear && oColl[k].tagName == "INPUT" && oColl[k].getAttribute("type").toLowerCase() != "button") {
oColl[k].value = "";
}
}
}catch(e) {}
for(var i=0;i<ary.length;i++) {
try {
this.changeAttr(node,ary[i],div,num);
} catch(e) {}
for(var j=0;j<oColl.length;j++) {
try {
this.changeAttr(oColl[j],ary[i],div,num);
} catch(e) {}
}
}
obj.insertAdjacentElement(where,node);
}
/**
* 在表不少于[i]行時,刪除[obj]所在的行
*/
Utility.prototype.delRow = function(obj,i) {
try {
var Elm = obj;
while(Elm && Elm.tagName != "TR") {
Elm = Elm.parentElement;
}
if(Elm.parentElement.rows.length <= i) {
alert("無法刪除!");
return;
}
Elm.parentElement.deleteRow(Elm.rowIndex);
} catch(e) {
alert("Err Utility 5001:\r\n" + e);
}
}
/**
* 在表[table]中[where]增加一行,并改變此行的[ary]中的屬性的序號,序號以[div]分割,增加[num],根據[del]判斷是否刪除指定標簽
*/
Utility.prototype.addRow = function(table,where,ary,div,num,del) {
try {
if(table.tagName != "TABLE") alert("Err Utility 5002");
var oList = table.children;
var oTBODY;
for(var i=0;i<oList.length;i++) {
if(oList[i].tagName == "TBODY") {
oTBODY = oList[i];
break;
}
}
var oTR = oTBODY.lastChild;
var newTR = oTR.cloneNode(true);
if(del) {
oList = oTR.all;
for(var i=0;i<oList.length;i++) {
if(oList[i].getAttribute("del") == "true") {
oList[i].outerHTML = "";
}
}
}
this.insertNode(oTBODY,where,newTR,ary,div,num,true)
} catch(e) {
alert("Err Utility 5002:\r\n" + e);
}
}
/**
* 在[path]中輸出[str]
*/
Utility.prototype.output = function(path,str) {
try {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile(path, true);
a.WriteLine(str);
a.Close();
}catch(e) {}
}
/**
* 定位下拉框[oSel]的值[value]
*/
Utility.prototype.setSelValue = function(oSel,value) {
try {
var opts = oSel.options;
for(var i=0;i<opts.length;i++) {
if(opts[i].value == value) {
oSel.selectedIndex = opts[i].index;
return;
}
}
}catch(e) {}
}
/**
* 定位下拉框[oSel]的文字[text]
*/
Utility.prototype.setSelText = function(oSel,text) {
try {
var opts = oSel.options;
for(var i=0;i<opts.length;i++) {
if(opts[i].text == text) {
oSel.selectedIndex = opts[i].index;
return;
}
}
}catch(e) {}
}
var util = new Utility();
//origin from drag.js
var _dx,_dy; // 鼠標起始坐標
var _ox,_oy; // 對象起始坐標
function Drag() {
if(event.ctrlKey) {
with(event.srcElement) {
attachEvent("onmousemove", doDrag);
attachEvent("onmouseup", endDrag);
attachEvent("onmouseout", endDrag);
attachEvent("onlosecapture", endDrag);
setCapture();
style.cursor = "hand";
if(style.position == "absolute") {
_ox = parseInt(style.left,10);
_oy = parseInt(style.top,10);
}
else {
_ox = getLeftEx(event.srcElement);
_oy = getTopEx(event.srcElement);
}
}
window.event.cancelBubble = true;
_dx = event.screenX;
_dy = event.screenY;
}
}
function doDrag() {
with(event.srcElement) {
style.position = "absolute";
style.left = (event.screenX - _dx + _ox);
style.top = (event.screenY - _dy + _oy);
}
}
function endDrag() {
with(event.srcElement) {
detachEvent("onmousemove", doDrag);
detachEvent("onmouseup", endDrag);
detachEvent("onmouseout", endDrag);
detachEvent("onlosecapture", endDrag);
releaseCapture();
style.cursor = "auto";
}
}
function getTopEx(obj) {
var t = obj.offsetTop;
while(obj = obj.offsetParent) t += obj.offsetTop;
return t;
}
function getLeftEx(obj) {
var l = obj.offsetLeft;
while(obj = obj.offsetParent) l += obj.offsetLeft;
return l;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -