feat: 项目基础框架+配置+Kernel
This commit is contained in:
@@ -0,0 +1,665 @@
|
||||
/**
|
||||
* zDialog 2.0
|
||||
* 样式修正:2015-4-15 李银红
|
||||
**/
|
||||
//15.5.25,修改默认按钮样式buttonStyle分别为确定popbtnOK,取消popbtnQX,使用的是style.css里的按钮样式
|
||||
var IMAGESPATH = '/template/zDialog/images/'; //图片路径配置
|
||||
/*************************一些公用方法和属性****************************/
|
||||
var isIE = navigator.userAgent.indexOf('MSIE') != -1;
|
||||
var isIE6 = navigator.userAgent.indexOf('MSIE 6.0') != -1;
|
||||
var isIE8 = !!window.XDomainRequest && !!document.documentMode;
|
||||
if(isIE)
|
||||
try{ document.execCommand('BackgroundImageCache',false,true); }catch(e){}
|
||||
|
||||
var $id = function (id) {
|
||||
return typeof id == "string" ? document.getElementById(id) : id;
|
||||
};
|
||||
//if (!$) var $ = $id;
|
||||
|
||||
Array.prototype.remove = function (s, dust) { //如果dust为ture,则返回被删除的元素
|
||||
if (dust) {
|
||||
var dustArr = [];
|
||||
for (var i = 0; i < this.length; i++) {
|
||||
if (s == this[i]) {
|
||||
dustArr.push(this.splice(i, 1)[0]);
|
||||
}
|
||||
}
|
||||
return dustArr;
|
||||
}
|
||||
for (var i = 0; i < this.length; i++) {
|
||||
if (s == this[i]) {
|
||||
this.splice(i, 1);
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
var $topWindow = function () {
|
||||
var parentWin = window;
|
||||
while (parentWin != parentWin.parent) {
|
||||
if (parentWin.parent.document.getElementsByTagName("FRAMESET").length > 0) break;
|
||||
parentWin = parentWin.parent;
|
||||
}
|
||||
return parentWin;
|
||||
};
|
||||
var $bodyDimensions = function (win) {
|
||||
win = win || window;
|
||||
var doc = win.document;
|
||||
var cw = doc.compatMode == "BackCompat" ? doc.body.clientWidth : doc.documentElement.clientWidth;
|
||||
var ch = doc.compatMode == "BackCompat" ? doc.body.clientHeight : doc.documentElement.clientHeight;
|
||||
var sl = Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft);
|
||||
var st = Math.max(doc.documentElement.scrollTop, doc.body.scrollTop); //考虑滚动的情况
|
||||
var sw = Math.max(doc.documentElement.scrollWidth, doc.body.scrollWidth);
|
||||
var sh = Math.max(doc.documentElement.scrollHeight, doc.body.scrollHeight); //考虑滚动的情况
|
||||
var w = Math.max(sw, cw); //取scrollWidth和clientWidth中的最大值
|
||||
var h = Math.max(sh, ch); //IE下在页面内容很少时存在scrollHeight<clientHeight的情况
|
||||
return {
|
||||
"clientWidth": cw,
|
||||
"clientHeight": ch,
|
||||
"scrollLeft": sl,
|
||||
"scrollTop": st,
|
||||
"scrollWidth": sw,
|
||||
"scrollHeight": sh,
|
||||
"width": w,
|
||||
"height": h
|
||||
}
|
||||
};
|
||||
|
||||
var fadeEffect = function(element, start, end, speed, callback){//透明度渐变:start:开始透明度 0-100;end:结束透明度 0-100;speed:速度1-100
|
||||
if(!element.effect)
|
||||
element.effect = {fade:0, move:0, size:0};
|
||||
clearInterval(element.effect.fade);
|
||||
var speed=speed||20;
|
||||
element.effect.fade = setInterval(function(){
|
||||
start = start < end ? Math.min(start + speed, end) : Math.max(start - speed, end);
|
||||
element.style.opacity = start / 100;
|
||||
element.style.filter = "alpha(opacity=" + start + ")";
|
||||
if(start == end){
|
||||
clearInterval(element.effect.fade);
|
||||
if(callback)
|
||||
callback.call(element);
|
||||
}
|
||||
}, 20);
|
||||
};
|
||||
|
||||
/*************************弹出框类实现****************************/
|
||||
var topWin = $topWindow();
|
||||
var topDoc = topWin.document;
|
||||
var Dialog = function () {
|
||||
/****以下属性以大写开始,可以在调用show()方法前设置值****/
|
||||
this.ID = null;
|
||||
this.Width = null;
|
||||
this.Height = null;
|
||||
this.URL = null;
|
||||
this.OnLoad=null;
|
||||
this.InnerHtml = ""
|
||||
this.InvokeElementId = ""
|
||||
this.Top = "50%";
|
||||
this.Left = "50%";
|
||||
this.Title = "";
|
||||
this.OKEvent = null; //点击确定后调用的方法
|
||||
this.CancelEvent = null; //点击取消及关闭后调用的方法
|
||||
this.ShowButtonRow = false;
|
||||
this.MessageIcon = "window.gif";
|
||||
this.MessageTitle = "";
|
||||
this.Message = "";
|
||||
this.ShowMessageRow = false;
|
||||
this.Modal = true;
|
||||
this.Drag = true;
|
||||
this.AutoClose = null;
|
||||
this.ShowCloseButton = true;
|
||||
this.Animator = true;
|
||||
/****以下属性以小写开始,不要自行改变****/
|
||||
this.dialogDiv = null;
|
||||
this.bgDiv=null;
|
||||
this.parentWindow = null;
|
||||
this.innerFrame = null;
|
||||
this.innerWin = null;
|
||||
this.innerDoc = null;
|
||||
this.zindex = 9999;
|
||||
this.cancelButton = null;
|
||||
this.okButton = null;
|
||||
|
||||
if (arguments.length > 0 && typeof(arguments[0]) == "string") { //兼容旧写法
|
||||
this.ID = arguments[0];
|
||||
} else if (arguments.length > 0 && typeof(arguments[0]) == "object") {
|
||||
Dialog.setOptions(this, arguments[0])
|
||||
}
|
||||
if(!this.ID)
|
||||
this.ID = topWin.Dialog._Array.length + "";
|
||||
|
||||
};
|
||||
Dialog._Array = [];
|
||||
Dialog.bgDiv = null;
|
||||
Dialog.setOptions = function (obj, optionsObj) {
|
||||
if (!optionsObj) return;
|
||||
for (var optionName in optionsObj) {
|
||||
obj[optionName] = optionsObj[optionName];
|
||||
}
|
||||
};
|
||||
Dialog.attachBehaviors = function () {
|
||||
if (isIE) {
|
||||
document.attachEvent("onkeydown", Dialog.onKeyDown);
|
||||
window.attachEvent('onresize', Dialog.resetPosition);
|
||||
} else {
|
||||
document.addEventListener("keydown", Dialog.onKeyDown, false);
|
||||
window.addEventListener('resize', Dialog.resetPosition, false);
|
||||
}
|
||||
};
|
||||
Dialog.prototype.attachBehaviors = function () {
|
||||
if (this.Drag && topWin.Drag) topWin.Drag.init(topWin.$id("_Draghandle_" + this.ID), topWin.$id("_DialogDiv_" + this.ID)); //注册拖拽方法
|
||||
if (!isIE && this.URL) { //非ie浏览器下在拖拽时用一个层遮住iframe,以免光标移入iframe失去拖拽响应
|
||||
var self = this;
|
||||
topWin.$id("_DialogDiv_" + this.ID).onDragStart = function () {
|
||||
topWin.$id("_Covering_" + self.ID).style.display = ""
|
||||
}
|
||||
topWin.$id("_DialogDiv_" + this.ID).onDragEnd = function () {
|
||||
topWin.$id("_Covering_" + self.ID).style.display = "none"
|
||||
}
|
||||
}
|
||||
};
|
||||
Dialog.prototype.displacePath = function () {
|
||||
if (this.URL.substr(0, 7) == "http://" || this.URL.substr(0, 1) == "/" || this.URL.substr(0, 11) == "javascript:") {
|
||||
return this.URL;
|
||||
} else {
|
||||
var thisPath = this.URL;
|
||||
var locationPath = window.location.href;
|
||||
locationPath = locationPath.substring(0, locationPath.lastIndexOf('/'));
|
||||
while (thisPath.indexOf('../') >= 0) {
|
||||
thisPath = thisPath.substring(3);
|
||||
locationPath = locationPath.substring(0, locationPath.lastIndexOf('/'));
|
||||
}
|
||||
return locationPath + '/' + thisPath;
|
||||
}
|
||||
};
|
||||
Dialog.prototype.setPosition = function () {
|
||||
var bd = $bodyDimensions(topWin);
|
||||
var thisTop = this.Top,
|
||||
thisLeft = this.Left,
|
||||
thisdialogDiv=this.getDialogDiv();
|
||||
if (typeof this.Top == "string" && this.Top.substring(this.Top.length - 1, this.Top.length) == "%") {
|
||||
var percentT = this.Top.substring(0, this.Top.length - 1) * 0.01;
|
||||
thisTop = bd.clientHeight * percentT - thisdialogDiv.scrollHeight * percentT + bd.scrollTop;
|
||||
}
|
||||
if (typeof this.Left == "string" && this.Left.substring(this.Left.length - 1, this.Left.length) == "%") {
|
||||
var percentL = this.Left.substring(0, this.Left.length - 1) * 0.01;
|
||||
thisLeft = bd.clientWidth * percentL - thisdialogDiv.scrollWidth * percentL + bd.scrollLeft;
|
||||
}
|
||||
thisdialogDiv.style.top = Math.round(thisTop) + "px";
|
||||
thisdialogDiv.style.left = Math.round(thisLeft) + "px";
|
||||
};
|
||||
Dialog.setBgDivSize = function () {
|
||||
var bd = $bodyDimensions(topWin);
|
||||
if(Dialog.bgDiv){
|
||||
if(isIE6){
|
||||
Dialog.bgDiv.style.height = bd.clientHeight + "px";
|
||||
Dialog.bgDiv.style.top=bd.scrollTop + "px";
|
||||
Dialog.bgDiv.childNodes[0].style.display = "none";//让div重渲染,修正IE6下尺寸bug
|
||||
Dialog.bgDiv.childNodes[0].style.display = "";
|
||||
}else{
|
||||
Dialog.bgDiv.style.height = bd.scrollHeight + "px";
|
||||
}
|
||||
}
|
||||
};
|
||||
Dialog.resetPosition = function () {
|
||||
Dialog.setBgDivSize();
|
||||
for (var i = 0, len = topWin.Dialog._Array.length; i < len; i++) {
|
||||
topWin.Dialog._Array[i].setPosition();
|
||||
}
|
||||
};
|
||||
Dialog.prototype.create = function () {
|
||||
var bd = $bodyDimensions(topWin);
|
||||
if (typeof(this.OKEvent)== "function") this.ShowButtonRow = true;
|
||||
if (!this.Width) this.Width = Math.round(bd.clientWidth * 4 / 10);
|
||||
if (!this.Height) this.Height = Math.round(this.Width / 2);
|
||||
if (this.MessageTitle || this.Message) this.ShowMessageRow = true;
|
||||
var DialogDivWidth = this.Width + 13 + 13;
|
||||
var DialogDivHeight = this.Height + 40 + 13 + (this.ShowButtonRow ? 40 : 0) + (this.ShowMessageRow ? 50 : 0);
|
||||
|
||||
if (DialogDivWidth > bd.clientWidth) this.Width = Math.round(bd.clientWidth - 26);
|
||||
if (DialogDivHeight > bd.clientHeight) this.Height = Math.round(bd.clientHeight - 46 - (this.ShowButtonRow ? 40 : 0) - (this.ShowMessageRow ? 50 : 0));
|
||||
|
||||
var html = '\
|
||||
<table id="_DialogTable_' + this.ID + '" width="' + (this.Width + 26) + '" cellspacing="0" cellpadding="0" border="0" onselectstart="return false;" style="-moz-user-select: none; font-size:12px; line-height:1.4;">\
|
||||
<tr id="_Draghandle_' + this.ID + '" style="' + (this.Drag ? "cursor: move;" : "") + '">\
|
||||
<td width="13" height="40" style="background-image: url(' + IMAGESPATH + 'dialog_lt.png);"><div style="width: 13px;"></div></td>\
|
||||
<td height="40" style="background-image:url(' + IMAGESPATH + 'dialog_ct.png);"><div style="padding: 9px 0 0 4px; float: left; font-weight: bold; color:#fff;"><img align="absmiddle" src="' + IMAGESPATH + 'icon_dialog.png"/><span style="font-size:14px" id="_Title_' + this.ID + '">' + this.Title + '</span></div>\
|
||||
<div onclick="Dialog.getInstance(\'' + this.ID + '\').cancelButton.onclick.apply(Dialog.getInstance(\'' + this.ID + '\').cancelButton,[]);" onmouseout="this.style.backgroundImage=\'url(' + IMAGESPATH + 'dialog_closebtn.png)\'" onmouseover="this.style.backgroundImage=\'url(' + IMAGESPATH + 'dialog_closebtn_over.png)\'" style="margin-top:5px; position: relative; cursor: pointer; float: right; height: 17px; width: 28px; background-image: url(' + IMAGESPATH + 'dialog_closebtn.png);' + (this.ShowCloseButton ? "" : "display:none;") + '"></div></td>\
|
||||
<td width="13" height="40" style="background-image: url(' + IMAGESPATH + 'dialog_rt.png);"><div style="width: 13px;"><a id="_forTab_' + this.ID + '" href="#;"></a></div></td>\
|
||||
</tr>\
|
||||
<tr valign="top">\
|
||||
<td width="13" style="background-image: url(' + IMAGESPATH + 'dialog_mlm.png);"></td>\
|
||||
<td><table width="100%" cellspacing="0" cellpadding="0" border="0" style="background:#fff;">\
|
||||
<tr id="_MessageRow_' + this.ID + '" style="' + (this.ShowMessageRow ? "" : "display:none") + '">\
|
||||
<td valign="top" height="50"><table width="100%" cellspacing="0" cellpadding="0" border="0" style="background:#eaece9 ;" id="_MessageTable_' + this.ID + '">\
|
||||
<tr>\
|
||||
<td width="50" height="50" align="center"><img width="32" height="32" src="' + IMAGESPATH + this.MessageIcon + '" id="_MessageIcon_' + this.ID + '"/></td>\
|
||||
<td align="left" style="line-height: 16px;"><div id="_MessageTitle_' + this.ID + '" style="font-weight:bold">' + this.MessageTitle + '</div>\
|
||||
<div id="_Message_' + this.ID + '">' + this.Message + '</div></td>\
|
||||
</tr>\
|
||||
</table></td>\
|
||||
</tr>\
|
||||
<tr>\
|
||||
<td valign="top"><div id="_Container_' + this.ID + '" style="position: relative; width: ' + this.Width + 'px; height: ' + this.Height + 'px;">\
|
||||
<div style="position: absolute; height: 100%; width: 100%; display: none; background-color:#fff; opacity: 0.5;" id="_Covering_' + this.ID + '"> </div>\
|
||||
' + (function (obj) {
|
||||
if (obj.InnerHtml) return obj.InnerHtml;
|
||||
if (obj.URL) return '<iframe width="100%" height="100%" frameborder="0" style="border:none 0;" allowtransparency="true" id="_DialogFrame_' + obj.ID + '" src="' + obj.displacePath() + '"></iframe>';
|
||||
return "";
|
||||
})(this) + '\
|
||||
</div></td>\
|
||||
</tr>\
|
||||
<tr id="_ButtonRow_' + this.ID + '" style="' + (this.ShowButtonRow ? "" : "display:none") + '">\
|
||||
<td height="36"><div id="_DialogButtons_' + this.ID + '" style="border-top: 1px solid #DADEE5; padding: 8px 20px; text-align: right; background-color:#f6f6f6;">\
|
||||
<input type="button" class="btn btn-default" value="取 消" style="margin:0 12px;" onclick="Dialog.getInstance(\'' + this.ID + '\').close();" id="_ButtonCancel_' + this.ID + '"/>\
|
||||
<input type="button" class="btn btn-info" style="margin:0 12px;" value="确 定" id="_ButtonOK_' + this.ID + '"/>\
|
||||
</div></td>\
|
||||
</tr>\
|
||||
</table></td>\
|
||||
<td width="13" style="background-image: url(' + IMAGESPATH + 'dialog_mrm.png);"></td>\
|
||||
</tr>\
|
||||
<tr>\
|
||||
<td width="13" height="13" style="background-image: url(' + IMAGESPATH + 'dialog_lb.png);"></td>\
|
||||
<td style="background-image: url(' + IMAGESPATH + 'dialog_cb.png);"></td>\
|
||||
<td width="13" height="13" style="background-image: url(' + IMAGESPATH + 'dialog_rb.png);"><a onfocus=\'$id("_forTab_' + this.ID + '").focus();\' href="#;"></a></td>\
|
||||
</tr>\
|
||||
</table>\
|
||||
</div>\
|
||||
'
|
||||
var div = topWin.$id("_DialogDiv_" + this.ID);
|
||||
if (!div) {
|
||||
div = topDoc.createElement("div");
|
||||
div.id = "_DialogDiv_" + this.ID;
|
||||
topDoc.getElementsByTagName("BODY")[0].appendChild(div);
|
||||
}
|
||||
div.style.position = "absolute";
|
||||
div.style.left = "-9999px";
|
||||
div.style.top = "-9999px";
|
||||
div.innerHTML = html;
|
||||
if (this.InvokeElementId) {
|
||||
var element = $id(this.InvokeElementId);
|
||||
element.style.position = "";
|
||||
element.style.display = "";
|
||||
if (isIE) {
|
||||
var fragment = topDoc.createElement("div");
|
||||
fragment.innerHTML = element.outerHTML;
|
||||
element.outerHTML = "";
|
||||
topWin.$id("_Covering_" + this.ID).parentNode.appendChild(fragment)
|
||||
} else {
|
||||
topWin.$id("_Covering_" + this.ID).parentNode.appendChild(element)
|
||||
}
|
||||
}
|
||||
this.parentWindow = window;
|
||||
if (this.URL) {
|
||||
if (topWin.$id("_DialogFrame_" + this.ID)) {
|
||||
this.innerFrame = topWin.$id("_DialogFrame_" + this.ID);
|
||||
};
|
||||
var self = this;
|
||||
innerFrameOnload = function () {
|
||||
try {
|
||||
self.innerWin = self.innerFrame.contentWindow;
|
||||
self.innerWin.parentDialog = self;
|
||||
self.innerDoc = self.innerWin.document;
|
||||
if (!self.Title && self.innerDoc && self.innerDoc.title) {
|
||||
if (self.innerDoc.title) topWin.$id("_Title_" + self.ID).innerHTML = self.innerDoc.title;
|
||||
};
|
||||
} catch(e) {
|
||||
if (console && console.log) console.log("可能存在访问限制,不能获取到iframe中的对象。")
|
||||
}
|
||||
if (typeof(self.OnLoad)== "function")self.OnLoad();
|
||||
};
|
||||
if (this.innerFrame.attachEvent) {
|
||||
this.innerFrame.attachEvent("onload", innerFrameOnload);
|
||||
} else {
|
||||
this.innerFrame.onload = innerFrameOnload;
|
||||
};
|
||||
};
|
||||
topWin.$id("_DialogDiv_" + this.ID).dialogId = this.ID;
|
||||
topWin.$id("_DialogDiv_" + this.ID).dialogInstance = this;
|
||||
this.attachBehaviors();
|
||||
this.okButton = topWin.$id("_ButtonOK_" + this.ID);
|
||||
this.cancelButton = topWin.$id("_ButtonCancel_" + this.ID);
|
||||
div=null;
|
||||
};
|
||||
Dialog.prototype.setSize = function (w, h) {
|
||||
if (w && +w > 20) {
|
||||
this.Width = +w;
|
||||
topWin.$id("_DialogTable_" + this.ID).width = this.Width + 26;
|
||||
topWin.$id("_Container_" + this.ID).style.width = this.Width + "px";
|
||||
}
|
||||
if (h && +h > 10) {
|
||||
this.Height = +h;
|
||||
topWin.$id("_Container_" + this.ID).style.height = this.Height + "px";
|
||||
}
|
||||
this.setPosition();
|
||||
};
|
||||
Dialog.prototype.show = function () {
|
||||
this.create();
|
||||
var bgdiv = Dialog.getBgdiv(),
|
||||
thisdialogDiv=this.getDialogDiv();
|
||||
this.zindex = thisdialogDiv.style.zIndex = Dialog.bgDiv.style.zIndex + 1;
|
||||
if (topWin.Dialog._Array.length > 0) {
|
||||
this.zindex = thisdialogDiv.style.zIndex = topWin.Dialog._Array[topWin.Dialog._Array.length - 1].zindex + 2;
|
||||
} else {
|
||||
var topWinBody = topDoc.getElementsByTagName(topDoc.compatMode == "BackCompat" ? "BODY" : "HTML")[0];
|
||||
//topWinBody.styleOverflow = topWinBody.style.overflow; 去除滚动条
|
||||
//topWinBody.style.overflow = "hidden"; 去除滚动条
|
||||
bgdiv.style.display = "none";
|
||||
}
|
||||
topWin.Dialog._Array.push(this);
|
||||
if (this.Modal) {
|
||||
bgdiv.style.zIndex = topWin.Dialog._Array[topWin.Dialog._Array.length - 1].zindex - 1;
|
||||
Dialog.setBgDivSize();
|
||||
if(bgdiv.style.display == "none"){
|
||||
if(this.Animator){
|
||||
var bgMask=topWin.$id("_DialogBGMask");
|
||||
bgMask.style.opacity = 0;
|
||||
bgMask.style.filter = "alpha(opacity=0)";
|
||||
bgdiv.style.display = "";
|
||||
fadeEffect(bgMask,0,40,isIE6?20:10);
|
||||
bgMask=null;
|
||||
}else{
|
||||
bgdiv.style.display = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
this.setPosition();
|
||||
if (this.CancelEvent) {
|
||||
this.cancelButton.onclick = this.CancelEvent;
|
||||
if(this.ShowButtonRow)this.cancelButton.focus();
|
||||
}
|
||||
if (this.OKEvent) {
|
||||
this.okButton.onclick = this.OKEvent;
|
||||
if(this.ShowButtonRow)this.okButton.focus();
|
||||
}
|
||||
if (this.AutoClose && this.AutoClose > 0) this.autoClose();
|
||||
this.opened = true;
|
||||
bgdiv=null;
|
||||
};
|
||||
Dialog.prototype.close = function () {
|
||||
var thisdialogDiv=this.getDialogDiv();
|
||||
if (this == topWin.Dialog._Array[topWin.Dialog._Array.length - 1]) {
|
||||
var isTopDialog = topWin.Dialog._Array.pop();
|
||||
} else {
|
||||
topWin.Dialog._Array.remove(this)
|
||||
}
|
||||
if (this.InvokeElementId) {
|
||||
var innerElement = topWin.$id(this.InvokeElementId);
|
||||
innerElement.style.display = "none";
|
||||
if (isIE) {
|
||||
//ie下不能跨窗口拷贝元素,只能跨窗口拷贝html代码
|
||||
var fragment = document.createElement("div");
|
||||
fragment.innerHTML = innerElement.outerHTML;
|
||||
innerElement.outerHTML = "";
|
||||
document.getElementsByTagName("BODY")[0].appendChild(fragment)
|
||||
} else {
|
||||
document.getElementsByTagName("BODY")[0].appendChild(innerElement)
|
||||
}
|
||||
|
||||
}
|
||||
if (topWin.Dialog._Array.length > 0) {
|
||||
if (this.Modal && isTopDialog) Dialog.bgDiv.style.zIndex = topWin.Dialog._Array[topWin.Dialog._Array.length - 1].zindex - 1;
|
||||
} else {
|
||||
Dialog.bgDiv.style.zIndex = "9999";
|
||||
Dialog.bgDiv.style.display = "none";
|
||||
var topWinBody = topDoc.getElementsByTagName(topDoc.compatMode == "BackCompat" ? "BODY" : "HTML")[0];
|
||||
//if (topWinBody.styleOverflow != undefined) topWinBody.style.overflow = topWinBody.styleOverflow; 去除滚动条
|
||||
}
|
||||
if (isIE) {
|
||||
/*****释放引用,以便浏览器回收内存**/
|
||||
thisdialogDiv.dialogInstance=null;
|
||||
if(this.innerFrame)this.innerFrame.detachEvent("onload", innerFrameOnload);
|
||||
this.innerFrame=null;
|
||||
this.parentWindow=null;
|
||||
this.bgDiv=null;
|
||||
if (this.CancelEvent){this.cancelButton.onclick = null;};
|
||||
if (this.OKEvent){this.okButton.onclick = null;};
|
||||
topWin.$id("_DialogDiv_" + this.ID).onDragStart=null;
|
||||
topWin.$id("_DialogDiv_" + this.ID).onDragEnd=null;
|
||||
topWin.$id("_Draghandle_" + this.ID).onmousedown=null;
|
||||
topWin.$id("_Draghandle_" + this.ID).root=null;
|
||||
/**end释放引用**/
|
||||
thisdialogDiv.outerHTML = "";
|
||||
CollectGarbage();
|
||||
} else {
|
||||
var RycDiv = topWin.$id("_RycDiv");
|
||||
if (!RycDiv) {
|
||||
RycDiv = topDoc.createElement("div");
|
||||
RycDiv.id = "_RycDiv";
|
||||
}
|
||||
RycDiv.appendChild(thisdialogDiv);
|
||||
RycDiv.innerHTML = "";
|
||||
RycDiv=null;
|
||||
}
|
||||
thisdialogDiv=null;
|
||||
this.closed = true;
|
||||
};
|
||||
Dialog.prototype.autoClose = function () {
|
||||
if (this.closed) {
|
||||
clearTimeout(this._closeTimeoutId);
|
||||
return;
|
||||
}
|
||||
this.AutoClose -= 1;
|
||||
topWin.$id("_Title_" + this.ID).innerHTML = this.AutoClose + " 秒后自动关闭";
|
||||
if (this.AutoClose <= 0) {
|
||||
this.close();
|
||||
} else {
|
||||
var self = this;
|
||||
this._closeTimeoutId = setTimeout(function () {
|
||||
self.autoClose();
|
||||
},
|
||||
1000);
|
||||
}
|
||||
};
|
||||
Dialog.getInstance = function (id) {
|
||||
var dialogDiv = topWin.$id("_DialogDiv_" + id);
|
||||
if (!dialogDiv) alert("没有取到对应ID的弹出框页面对象");
|
||||
try{
|
||||
return dialogDiv.dialogInstance;
|
||||
}finally{
|
||||
dialogDiv = null;
|
||||
}
|
||||
};
|
||||
Dialog.prototype.addButton = function (id, txt, func) {
|
||||
topWin.$id("_ButtonRow_" + this.ID).style.display = "";
|
||||
this.ShowButtonRow = true;
|
||||
var button = topDoc.createElement("input");
|
||||
button.id = "_Button_" + this.ID + "_" + id;
|
||||
button.type = "button";
|
||||
button.style.cssText = "margin-right:5px";
|
||||
button.value = txt;
|
||||
button.onclick = func;
|
||||
var input0 = topWin.$id("_DialogButtons_" + this.ID).getElementsByTagName("INPUT")[0];
|
||||
input0.parentNode.insertBefore(button, input0);
|
||||
return button;
|
||||
};
|
||||
Dialog.prototype.removeButton = function (btn) {
|
||||
var input0 = topWin.$id("_DialogButtons_" + this.ID).getElementsByTagName("INPUT")[0];
|
||||
input0.parentNode.removeChild(btn);
|
||||
};
|
||||
Dialog.getBgdiv = function () {
|
||||
if (Dialog.bgDiv) return Dialog.bgDiv;
|
||||
var bgdiv = topWin.$id("_DialogBGDiv");
|
||||
if (!bgdiv) {
|
||||
bgdiv = topDoc.createElement("div");
|
||||
bgdiv.id = "_DialogBGDiv";
|
||||
bgdiv.style.cssText = "position:absolute;left:0px;top:0px;width:100%;height:100%;z-index:9999";
|
||||
var bgIframeBox = '<div style="position:relative;width:100%;height:100%;">';
|
||||
var bgIframeMask = '<div id="_DialogBGMask" style="position:absolute;background-color:#333;opacity:0.4;filter:alpha(opacity=40);width:100%;height:100%;"></div>';
|
||||
var bgIframe = isIE6?'<iframe src="about:blank" style="filter:alpha(opacity=0);" width="100%" height="100%"></iframe>':'';
|
||||
bgdiv.innerHTML=bgIframeBox+bgIframeMask+bgIframe+'</div>';
|
||||
topDoc.getElementsByTagName("BODY")[0].appendChild(bgdiv);
|
||||
if (isIE6) {
|
||||
var bgIframeDoc = bgdiv.getElementsByTagName("IFRAME")[0].contentWindow.document;
|
||||
bgIframeDoc.open();
|
||||
bgIframeDoc.write("<body style='background-color:#333' oncontextmenu='return false;'></body>");
|
||||
bgIframeDoc.close();
|
||||
bgIframeDoc=null;
|
||||
}
|
||||
}
|
||||
Dialog.bgDiv = bgdiv;
|
||||
bgdiv=null;
|
||||
return Dialog.bgDiv;
|
||||
};
|
||||
Dialog.prototype.getDialogDiv = function () {
|
||||
var dialogDiv=topWin.$id("_DialogDiv_" + this.ID)
|
||||
if(!dialogDiv)alert("获取弹出层页面对象出错!");
|
||||
try{
|
||||
return dialogDiv;
|
||||
}finally{
|
||||
dialogDiv = null;
|
||||
}
|
||||
};
|
||||
Dialog.onKeyDown = function (event) {
|
||||
if (event.shiftKey && event.keyCode == 9) { //shift键
|
||||
if (topWin.Dialog._Array.length > 0) {
|
||||
stopEvent(event);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (event.keyCode == 27) { //ESC键
|
||||
Dialog.close();
|
||||
}
|
||||
};
|
||||
Dialog.close = function (id) {
|
||||
if (topWin.Dialog._Array.length > 0) {
|
||||
var diag = topWin.Dialog._Array[topWin.Dialog._Array.length - 1];
|
||||
diag.cancelButton.onclick.apply(diag.cancelButton, []);
|
||||
}
|
||||
};
|
||||
Dialog.alert = function (msg, func, w, h) {
|
||||
var w = w || 300,
|
||||
h = h || 110;
|
||||
var diag = new Dialog({
|
||||
Width: w,
|
||||
Height: h
|
||||
});
|
||||
diag.ShowButtonRow = true;
|
||||
diag.Title = "系统提示";
|
||||
diag.CancelEvent = function () {
|
||||
diag.close();
|
||||
if (func) func();
|
||||
};
|
||||
diag.InnerHtml = '<table height="100%" border="0" align="center" cellpadding="10" cellspacing="0">\
|
||||
<tr><td align="right"><img id="Icon_' + this.ID + '" src="' + IMAGESPATH + 'icon_alert.gif" width="34" height="34" align="absmiddle"></td>\
|
||||
<td align="left" id="Message_' + this.ID + '" style="font-size:12px">' + msg + '</td></tr>\
|
||||
</table>';
|
||||
diag.show();
|
||||
diag.okButton.parentNode.style.textAlign = "center";
|
||||
diag.okButton.style.display = "none";
|
||||
diag.cancelButton.value = "确 定";
|
||||
diag.cancelButton.focus();
|
||||
};
|
||||
Dialog.confirm = function (msg, funcOK, funcCal, w, h) {
|
||||
var w = w || 300,
|
||||
h = h || 110;
|
||||
var diag = new Dialog({
|
||||
Width: w,
|
||||
Height: h
|
||||
});
|
||||
diag.ShowButtonRow = true;
|
||||
diag.Title = "信息确认";
|
||||
diag.CancelEvent = function () {
|
||||
diag.close();
|
||||
if (funcCal) {
|
||||
funcCal();
|
||||
}
|
||||
};
|
||||
diag.OKEvent = function () {
|
||||
diag.close();
|
||||
if (funcOK) {
|
||||
funcOK();
|
||||
}
|
||||
};
|
||||
diag.InnerHtml = '<table height="100%" border="0" align="center" cellpadding="10" cellspacing="0">\
|
||||
<tr><td align="right"><img id="Icon_' + this.ID + '" src="' + IMAGESPATH + 'icon_query.gif" width="34" height="34" align="absmiddle"></td>\
|
||||
<td align="left" id="Message_' + this.ID + '" style="font-size:14px">' + msg + '</td></tr>\
|
||||
</table>';
|
||||
diag.show();
|
||||
diag.okButton.parentNode.style.textAlign = "center";
|
||||
diag.okButton.focus();
|
||||
};
|
||||
Dialog.open = function (arg) {
|
||||
var diag = new Dialog(arg);
|
||||
diag.show();
|
||||
return diag;
|
||||
};
|
||||
if (isIE) {
|
||||
window.attachEvent("onload", Dialog.attachBehaviors);
|
||||
} else {
|
||||
window.addEventListener("load", Dialog.attachBehaviors, false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*非弹出式JS提示*/
|
||||
|
||||
//1、全局居中显示
|
||||
/*用法: diytipshow('load','提示内容','y/n',2)
|
||||
或:diytipshow('ok','提示内容'),这种形式,将默认为2秒后自动消失
|
||||
*/
|
||||
var timelinshi=2;
|
||||
var tipcontent="";//文本类型,要提示的内容
|
||||
var hidetimeset=timelinshi;//纯数字,自动消失时间,默认2秒,
|
||||
var ifAutoHideset="y";//y和n,默认y自动消失,n需要点击才消失
|
||||
var typeset="load";//图标样式,默认load加载中样式,ok成功,err错误,tip一般提示,
|
||||
diytipcontent="";
|
||||
function diytipshow(type,tipContent,ifAutoHide,hideTime,funacc){
|
||||
tipcontent=tipContent;
|
||||
ifAutoHideset=ifAutoHide;
|
||||
hidetimeset=hideTime;
|
||||
typeset=type;
|
||||
switch(typeset)
|
||||
{
|
||||
case "load":
|
||||
icoclass="p_load";
|
||||
break;
|
||||
case "ok":
|
||||
icoclass="p_ok";
|
||||
break;
|
||||
case "err":
|
||||
icoclass="p_err";
|
||||
break;
|
||||
case "tip":
|
||||
icoclass="p_tip";
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
var diytipcontent='<div class="pop_div_markbg"></div><div class="iehack diytipconbox '+icoclass+'"><div class="closebtn"></div><div class="diytipcon">'+tipcontent+'</div></div>';
|
||||
$("body").append(diytipcontent);
|
||||
diytipconbox_w=$(".diytipconbox").width()/2;
|
||||
diytipconbox_h=$(".diytipconbox").height()/2;
|
||||
$(".diytipconbox").css({"top":"-100px","margin-top":"-"+(diytipconbox_h+5)+"px","margin-left":"-"+(diytipconbox_w+22)+"px"});
|
||||
$(".diytipconbox").animate({"top":"50%"},300);
|
||||
if(ifAutoHideset==null){
|
||||
ifAutoHideset="y";
|
||||
}
|
||||
if(hidetimeset==null){
|
||||
hidetimeset=timelinshi;
|
||||
}
|
||||
if(ifAutoHideset=="y"){
|
||||
$(".diytipconbox .closebtn").hide();
|
||||
setTimeout("CloseDiytip()",hidetimeset*1000);
|
||||
}
|
||||
if(ifAutoHideset=="n"){
|
||||
$(".pop_div_markbg").click(function(e) {
|
||||
CloseDiytip();
|
||||
});
|
||||
$(".diytipconbox").click(function(e) {
|
||||
CloseDiytip();
|
||||
});
|
||||
}
|
||||
$(".diytipconbox .closebtn").click(function(e) {
|
||||
CloseDiytip();
|
||||
});
|
||||
if (funacc) {
|
||||
funacc();
|
||||
}
|
||||
}
|
||||
function CloseDiytip(){
|
||||
$(".diytipconbox").animate({"top":"-100px"},300);
|
||||
$(".pop_div_markbg").hide(0);
|
||||
$(".diytipconbox").remove();
|
||||
$(".pop_div_markbg").remove();
|
||||
}
|
||||
Reference in New Issue
Block a user