📄 radwindow.js
字号:
if (radWindowInfo.UseClassicDialogs && this.IsIE)
{
var features = "status:no;"
+ "resizable:yes;"
+ "center:yes;"
+ "help:no;"
+ "minimize:no;"
+ "maximize:no;"
+ "scroll:no;"
+ "border:thin;"
+ "statusbar:no;"
+ "dialogWidth:" + radWindowInfo.Width + "px;"
+ "dialogHeight:" + radWindowInfo.Height + "px";
if (radWindowInfo.InnerHtml && radWindowInfo.InnerHtml != "")
{
radWindow.InnerHTML = radWindowInfo.InnerHtml;
}
if (!radWindowInfo.Url || "" == radWindowInfo.Url)
radWindowInfo.Url = "javascript:''";
var dialogArguments = {
parentWindow : window
, radWindow : radWindow
,IsRadWindowArgs : true //TEKI - A problem with mixing IE dialogAruments with our own!
};
window.showModalDialog(radWindowInfo.Url, dialogArguments, features);
}
else if (radWindowInfo.UseClassicDialogs && !this.IsIE)
{
if (!radWindowInfo.Url || "" == radWindowInfo.Url)
radWindowInfo.Url = "javascript:''";
window.childRadWindow = radWindow;
radWindow.Window = window.open(radWindowInfo.Url
, "_blank"
, "status=no,toolbar=no,location=no,resizable=yes,menubar=no,width=" + radWindowInfo.Width + ",height=" + radWindowInfo.Height + ",modal=yes");
}
else if (!radWindowInfo.UseClassicDialogs)
{
var container = null;
if (this.ContainerPool.length > 0)
{
container = this.ContainerPool.pop();
}
else
{
container = document.createElement("SPAN");
document.body.appendChild(container);
}
var oHtml = this.BuildWrapperTableHtml(id
, radWindowInfo.Width
, radWindowInfo.Height
, caption
, bIsModal
, radWindowInfo.CloseHide
, radWindowInfo.BlankIFrameLocation);
container.innerHTML = oHtml;
var contentElem = (null != radWindowInfo.InnerObject)
? radWindowInfo.InnerObject
: document.getElementById("RadWindowContentFrame" + id);
radWindow.Initialize2(contentElem, true, container, bIsModal, ++this.TopWindowZIndex);
var frm = document.getElementById("RadWindowContentFrame" + id);
/*** NS toolbar when toolOnPage = false and content element is DIV ***/
radWindow.Window = null != frm ? frm.contentWindow : null;
if (radWindowInfo.InnerHtml && radWindowInfo.InnerHtml != "")
{
var doc = frm.contentWindow.document;
doc.open();
doc.write(radWindowInfo.InnerHtml);
doc.close();
}
else if (radWindowInfo.Url && radWindowInfo.Url != "")
{
frm.src = radWindowInfo.Url;
}
if (bIsModal)
{
this.SetCapture(radWindow, false);
}
var theVisibleWidth = Math.min(window.screen.width, document.body.clientWidth);
var theVisibleHeight = (document.documentElement && document.documentElement.clientHeight)
? document.documentElement.clientHeight
: Math.min(window.screen.height, document.body.clientHeight);
var x = RadGetScrollLeft(document) + (theVisibleWidth - parseInt(radWindowInfo.Width)) / 2;
var y = RadGetScrollTop(document) + (theVisibleHeight - parseInt(radWindowInfo.Height)) / 2;
if (null == radWindowInfo.IsVisible)
{
radWindowInfo.IsVisible = false;
}
radWindow.SetSize(radWindowInfo.Width, radWindowInfo.Height);
radWindow.ShowWindow(radWindowInfo.IsVisible, x, y);
}
return radWindow;
}
RadWindowManager.prototype.DestroyWindow = function(childWindow)
{
var nextWndToActivate = this.GetPrevWindow(childWindow.Id);
this.UnregisterChild(childWindow);
if (nextWndToActivate != childWindow)
{
this.ActivateWindow(nextWndToActivate);
}
eval(this.GetWindowVarName(childWindow.Id) + " = null;");
if (childWindow.Container)
{
this.ContainerPool.push(childWindow.Container);
}
}
RadWindowManager.prototype.GetPrevWindow = function(id)
{
var bNeedPrev = false;
var retWnd = null;
for (var i = this.ChildWindows.length - 1; i >= 0; i--)
{
var wnd = this.ChildWindows[i];
if (wnd && wnd.Id == id)
{
bNeedPrev = true;
}
else if (wnd && bNeedPrev)
{
return wnd;
}
else if (null == retWnd)
{
retWnd = wnd;
}
}
return retWnd;
}
RadWindowManager.prototype.CloseWindow = function(id)
{
var wnd = this.LookupWindow(id);
if (wnd)
{
wnd.Close();
}
}
RadWindowManager.prototype.ActivateWindow = function(radWindow)
{
if (!radWindow)
{
radWindow = this.ActiveWindow;
}
if (radWindow)
{
if (radWindow.IsModal)
{
this.SetCapture(radWindow, false);
}
if (radWindow != this.ActiveWindow)
{
if (this.ActiveWindow)
{
this.ActiveWindow.SetZIndex(this.TopWindowZIndex - 1);
}
radWindow.SetZIndex(this.TopWindowZIndex);
this.ActiveWindow = radWindow;
}
if (radWindow.IsModal)
{
this.ShowOverImage(radWindow, true);
}
}
}
RadWindowManager.prototype.RegisterChild = function(childWindow)
{
this.ChildWindows[this.ChildWindows.length] = childWindow;
}
RadWindowManager.prototype.UnregisterChild = function(childWindow)
{
for (var i = 0; i < this.ChildWindows.length; i++)
{
var wnd = this.ChildWindows[i];
if (wnd == childWindow)
{
this.ChildWindows[i] = null;
return;
}
}
}
RadWindowManager.prototype.SetCapture = function(childWindow, bContainerCapture)
{
try
{
if (childWindow)
{
childWindow.SetCapture(bContainerCapture);
}
}
catch (ex)
{
}
}
RadWindowManager.prototype.LookupWindow = function(id)
{
for (var i = 0; i < this.ChildWindows.length; i++)
{
var wnd = this.ChildWindows[i];
if (wnd && id == wnd.Id)
{
return wnd;
}
}
return null; //this.ChildWindows[id];
}
RadWindowManager.prototype.LookupRadWindowByBrowserWindowRef = function(browserWindow)
{
for (var i = 0; i < this.ChildWindows.length; i++)
{
var radWindow = this.ChildWindows[i];
if (null != radWindow && browserWindow == radWindow.Window)
{
return radWindow;
}
}
return null;
}
RadWindowManager.prototype.GetCurrentRadWindow = function(browserWindow)
{
if (browserWindow.dialogArguments && (true == browserWindow.dialogArguments.IsRadWindowArgs))//TEKI - A problem with mixing IE dialogAruments with our own!
{
return browserWindow.dialogArguments.radWindow;
}
else if (browserWindow.opener != null && browserWindow.opener.childRadWindow != null)
{
return browserWindow.opener.childRadWindow;
}
else
{
var oLast = this.LookupRadWindowByBrowserWindowRef(browserWindow);
return oLast;
}
}
// If already exists a window with same id - returns it;
// Otherwise creates a new window and returns it
RadWindowManager.prototype.GetWindow = function(id)
{
var wnd = this.LookupWindow(id);
if (!wnd)
{
var varName = this.GetWindowVarName(id);
eval(varName + " = new RadWindow('" + id + "');");
wnd = eval(varName);
wnd.Parent = this;
this.RegisterChild(wnd);
}
return wnd;
}
RadWindowManager.prototype.GetWindowVarName = function(id)
{
return "window.radWindow_" + id;
}
RadWindowManager.prototype.GetWindowFromPos = function(x, y)
{
var wnd = null;
for (var i = 0; i < this.ChildWindows; i++)
{
var childWnd = this.ChildWindows[i];
if (childWnd && childWnd.HitText(x, y))
{
if (!wnd || wnd.ZIndex < childWnd.ZIndex)
{
wnd = childWnd;
}
}
}
return wnd;
}
RadWindowManager.prototype.OnShowWindow = function(childWindow, visible)
{
if (visible)
{
this.ActiveWindow = childWindow;
}
else
{
if (this.ActiveWindow == childWindow)
{
this.ActiveWindow = null;
}
}
if (childWindow.IsModal)
{
this.ShowOverImage(childWindow, visible);
}
}
RadWindowManager.prototype.OnKeyDown = function(evt)
{
switch (evt.keyCode)
{
case 115: //F4
if (evt.altKey && this.ActiveWindow)
{
//this.ActiveWindow.Close();
}
else if (evt.ctrlKey && this.ActiveWindow)
{
//alert("CTRL+F4");
}
evt.keyCode = 8;
break;
case 27: //ESC
if (this.ActiveWindow)
{
this.ActiveWindow.Close();
}
break;
default:
return;
}
evt.cancelBubble = true;
evt.returnValue = false;
}
RadWindowManager.prototype.BuildWrapperTableHtml = function(id, width, height, caption, bIsModal, bHide, blankIFrameLocation) //url, innerHtml,
{
//TEKI - RE5-2838 javascript:'' causes in Moz the Javascript console to appear sometimes
//var url = ((null != blankIFrameLocation && "" != blankIFrameLocation) ? blankIFrameLocation : "javascript:'';");
var url = document.all ? "javascript:'';" : "";
var closeFunc = bHide ? "ShowWindow(false)" : "Close()";
var html = "";
html += " <table border='0' id='RadWindowContentWrapper" + id + "' class='RadETableWrapper' style='display:block; z-index:1000; position:absolute;' cellspacing='0' cellpadding='0' width='" + width + "px' height='" + height + "px'>\n"//width='" + width + "px' height='" + height + "px'
+ " <tr>\n"
+ " <td width='1' class='RadETableWrapperHeaderLeft' nowrap></td>\n"
+ " <td width='100%' class='RadETableWrapperHeaderCenter' nowrap='true' ondblclick='radWindow_" + id + ".ToggleContent();' onmousedown='radWindow_" + id + ".DragMode=\"move\"; return radWindow_" + id + ".OnDragStart(event);' onselectstart='return false;'>\n"
+ " <span id='RadWindowCaption" + id + "' onselectstart='return false;' class='RadERadWindowHeader'>" + caption + "</span>\n"
+ " </td>\n";
if (!bIsModal)
{
html += " <td width='1' class='RadETableWrapperHeaderCenter' nowrap>\n"
+ " <span class='RadERadWindowButtonPinOff' id='ButtonPin' onclick='radWindow_" + id + ".ToggleCanMove(this)'> </span>"
+ " </td>\n";
}
html += " <td width='1' class='RadETableWrapperHeaderCenter' nowrap>\n"
+ " <span class='RadERadWindowButtonClose' id='ButtonClose' onclick='radWindow_" + id + "." + closeFunc + "'> </span>\n"
+ " </td>\n"
+ " <td width='1' class='RadETableWrapperHeaderRight' nowrap></td>\n"
+ " </tr>\n"
+ " <tr>\n"
+ " <td height='100%' id='RadWindowContentTD" + id + "' colspan='5'>\n"
+ " <table border='0' width='100%' height='100%' cellspacing='0' cellpadding='0'>\n"
+ " <tr>\n"
+ " <td width='1' class='RadETableWrapperBodyLeft' nowrap></td>\n"
+ " <td width='100%' class='RadETableWrapperBodyCenter' align='left' valign='top' onselectstart='return false;'>\n"
+ " <span id='RadWindowContentWindow" + id + "' align='center' style='width:100%;height:100%;' >\n"
+ " <iframe name='RadWindowContent' frameborder='0px' style='border:0px solid green' id='RadWindowContentFrame" + id + "' src='" + url + "' scrolling='no' border='no' width='100%' height='100%' ></iframe>\n"
+ " </span>\n"
+ " </td>\n"
+ " <td width='1' class='RadETableWrapperBodyRight' nowrap></td>\n"
+ " </tr>\n"
+ " </table>\n"
+ " </td>\n"
+ " </tr>\n"
+ " <tr>\n"
+ " <td colspan='5' width='100%' height='1' >\n"
+ " <table border='0' width='100%' height='1' cellspacing='0' cellpadding='0'>\n"
+ " <tr>\n"
+ " <td width='1' class='RadETableWrapperFooterLeft' nowrap> </td>\n"
+ " <td colspan='3' id='BorderBottom' width='100%' class='RadETableWrapperFooterCenter' nowrap> </td> \n"
+ " <td width='1' id='CornerBottomRight' class='RadETableWrapperFooterRight' onmousedown='radWindow_" + id + ".DragMode=\"size\"; return radWindow_" + id + ".OnDragStart(event);' onselectstart='return false;' nowrap> </td>\n"
+ " </tr>\n"
+ " </table>\n"
+ " </td>\n"
+ " </tr>\n"
+ " </table>\n";
return html;
}
RadWindowManager.prototype.ShowOverImage = function(wnd, visible)
{
if (this.OverImage)
{
if (wnd && visible)
{
this.OverImage.style.position = "absolute";
this.OverImage.style.left = 0;
this.OverImage.style.top = 0;
this.OverImage.style.width = Math.max(0, parseInt(document.body.clientWidth) - 2);
this.OverImage.style.height = Math.max(0, parseInt(document.body.clientHeight) - 2);
this.OverImage.style.zIndex = wnd.ZIndex;
this.OverImage.style.display = "";//block
}
else
{
this.OverImage.style.display = "none";
}
}
}
/*************************************************
*
* RadGetScrollTop
*
*************************************************/
function RadGetScrollTop(oDocument)
{
if (oDocument.documentElement
&& oDocument.documentElement.scrollTop)
{
return oDocument.documentElement.scrollTop;
}
else
{
return oDocument.body.scrollTop;
}
}
/*************************************************
*
* RadGetScrollLeft
*
*************************************************/
function RadGetScrollLeft(oDocument)
{
if (oDocument.documentElement
&& oDocument.documentElement.scrollLeft)
{
return oDocument.documentElement.scrollLeft;
}
else
{
return oDocument.body.scrollLeft;
}
}
function CloseDlg(returnValue, callbackFunction, execCallBack)
{
if (window.radWindow)
{
window.radWindow.ReturnValue = returnValue;
window.radWindow.Close(null, callbackFunction, execCallBack);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -