📄 window.js
字号:
win.style.display = 'none'; win.innerHTML = ''; objBody.insertBefore(win, objBody.firstChild); return win; }, _storeLocation: function() { if (this.storedLocation == null) { this.storedLocation = {useTop: this.useTop, useLeft: this.useLeft, top: this.element.getStyle('top'), bottom: this.element.getStyle('bottom'), left: this.element.getStyle('left'), right: this.element.getStyle('right'), width: this.width, height: this.height }; } }, _restoreLocation: function() { if (this.storedLocation != null) { this.useLeft = this.storedLocation.useLeft; this.useTop = this.storedLocation.useTop; if (this.useLeft && this.useTop && Window.hasEffectLib && Effect.ResizeWindow) new Effect.ResizeWindow(this, this.storedLocation.top, this.storedLocation.left, this.storedLocation.width, this.storedLocation.height, {duration: Window.resizeEffectDuration}); else { this.element.setStyle(this.useLeft ? {left: this.storedLocation.left} : {right: this.storedLocation.right}); this.element.setStyle(this.useTop ? {top: this.storedLocation.top} : {bottom: this.storedLocation.bottom}); this.setSize(this.storedLocation.width, this.storedLocation.height); } Windows.resetOverflow(); this._removeStoreLocation(); } }, _removeStoreLocation: function() { this.storedLocation = null; }, _saveCookie: function() { if (this.cookie) { var value = ""; if (this.useLeft) value += "l:" + (this.storedLocation ? this.storedLocation.left : this.element.getStyle('left')) else value += "r:" + (this.storedLocation ? this.storedLocation.right : this.element.getStyle('right')) if (this.useTop) value += ",t:" + (this.storedLocation ? this.storedLocation.top : this.element.getStyle('top')) else value += ",b:" + (this.storedLocation ? this.storedLocation.bottom :this.element.getStyle('bottom')) value += "," + (this.storedLocation ? this.storedLocation.width : this.width); value += "," + (this.storedLocation ? this.storedLocation.height : this.height); value += "," + this.isMinimized(); value += "," + this.isMaximized(); WindowUtilities.setCookie(value, this.cookie) } }, _createWiredElement: function() { if (! this.wiredElement) { if (Prototype.Browser.IE) this._getWindowBorderSize(); var div = document.createElement("div"); div.className = "wired_frame " + this.options.className + "_wired_frame"; div.style.position = 'absolute'; this.options.parent.insertBefore(div, this.options.parent.firstChild); this.wiredElement = $(div); } if (this.useLeft) this.wiredElement.setStyle({left: this.element.getStyle('left')}); else this.wiredElement.setStyle({right: this.element.getStyle('right')}); if (this.useTop) this.wiredElement.setStyle({top: this.element.getStyle('top')}); else this.wiredElement.setStyle({bottom: this.element.getStyle('bottom')}); var dim = this.element.getDimensions(); this.wiredElement.setStyle({width: dim.width + "px", height: dim.height +"px"}); this.wiredElement.setStyle({zIndex: Windows.maxZIndex+30}); return this.wiredElement; }, _hideWiredElement: function() { if (! this.wiredElement || ! this.currentDrag) return; if (this.currentDrag == this.element) this.currentDrag = null; else { if (this.useLeft) this.element.setStyle({left: this.currentDrag.getStyle('left')}); else this.element.setStyle({right: this.currentDrag.getStyle('right')}); if (this.useTop) this.element.setStyle({top: this.currentDrag.getStyle('top')}); else this.element.setStyle({bottom: this.currentDrag.getStyle('bottom')}); this.currentDrag.hide(); this.currentDrag = null; if (this.doResize) this.setSize(this.width, this.height); } }, _notify: function(eventName) { if (this.options[eventName]) this.options[eventName](this); else Windows.notify(eventName, this); }};// Windows containers, register all page windowsvar Windows = { windows: [], modalWindows: [], observers: [], focusedWindow: null, maxZIndex: 0, overlayShowEffectOptions: {duration: 0.5}, overlayHideEffectOptions: {duration: 0.5}, addObserver: function(observer) { this.removeObserver(observer); this.observers.push(observer); }, removeObserver: function(observer) { this.observers = this.observers.reject( function(o) { return o==observer }); }, // onDestroy onStartResize onStartMove onResize onMove onEndResize onEndMove onFocus onBlur onBeforeShow onShow onHide onMinimize onMaximize onClose notify: function(eventName, win) { this.observers.each( function(o) {if(o[eventName]) o[eventName](eventName, win);}); }, // Gets window from its id getWindow: function(id) { return this.windows.detect(function(d) { return d.getId() ==id }); }, // Gets the last focused window getFocusedWindow: function() { return this.focusedWindow; }, updateFocusedWindow: function() { this.focusedWindow = this.windows.length >=2 ? this.windows[this.windows.length-2] : null; }, // Registers a new window (called by Windows constructor) register: function(win) { this.windows.push(win); }, // Add a modal window in the stack addModalWindow: function(win) { // Disable screen if first modal window if (this.modalWindows.length == 0) { WindowUtilities.disableScreen(win.options.className, 'overlay_modal', win.overlayOpacity, win.getId(), win.options.parent); } else { // Move overlay over all windows if (Window.keepMultiModalWindow) { $('overlay_modal').style.zIndex = Windows.maxZIndex + 1; Windows.maxZIndex += 1; WindowUtilities._hideSelect(this.modalWindows.last().getId()); } // Hide current modal window else this.modalWindows.last().element.hide(); // Fucking IE select issue WindowUtilities._showSelect(win.getId()); } this.modalWindows.push(win); }, removeModalWindow: function(win) { this.modalWindows.pop(); // No more modal windows if (this.modalWindows.length == 0) WindowUtilities.enableScreen(); else { if (Window.keepMultiModalWindow) { this.modalWindows.last().toFront(); WindowUtilities._showSelect(this.modalWindows.last().getId()); } else this.modalWindows.last().element.show(); } }, // Registers a new window (called by Windows constructor) register: function(win) { this.windows.push(win); }, // Unregisters a window (called by Windows destructor) unregister: function(win) { this.windows = this.windows.reject(function(d) { return d==win }); }, // Closes all windows closeAll: function() { this.windows.each( function(w) {Windows.close(w.getId())} ); }, closeAllModalWindows: function() { WindowUtilities.enableScreen(); this.modalWindows.each( function(win) {if (win) win.close()}); }, // Minimizes a window with its id minimize: function(id, event) { var win = this.getWindow(id) if (win && win.visible) win.minimize(); Event.stop(event); }, // Maximizes a window with its id maximize: function(id, event) { var win = this.getWindow(id) if (win && win.visible) win.maximize(); Event.stop(event); }, // Closes a window with its id close: function(id, event) { var win = this.getWindow(id); if (win) win.close(); if (event) Event.stop(event); }, blur: function(id) { var win = this.getWindow(id); if (!win) return; if (win.options.blurClassName) win.changeClassName(win.options.blurClassName); if (this.focusedWindow == win) this.focusedWindow = null; win._notify("onBlur"); }, focus: function(id) { var win = this.getWindow(id); if (!win) return; if (this.focusedWindow) this.blur(this.focusedWindow.getId()) if (win.options.focusClassName) win.changeClassName(win.options.focusClassName); this.focusedWindow = win; win._notify("onFocus"); }, unsetOverflow: function(except) { this.windows.each(function(d) { d.oldOverflow = d.getContent().getStyle("overflow") || "auto" ; d.getContent().setStyle({overflow: "hidden"}) }); if (except && except.oldOverflow) except.getContent().setStyle({overflow: except.oldOverflow}); }, resetOverflow: function() { this.windows.each(function(d) { if (d.oldOverflow) d.getContent().setStyle({overflow: d.oldOverflow}) }); }, updateZindex: function(zindex, win) { if (zindex > this.maxZIndex) { this.maxZIndex = zindex; if (this.focusedWindow) this.blur(this.focusedWindow.getId()) } this.focusedWindow = win; if (this.focusedWindow) this.focus(this.focusedWindow.getId()) }};var Dialog = { dialogId: null, onCompleteFunc: null, callFunc: null, parameters: null, confirm: function(content, parameters) { // Get Ajax return before if (content && typeof content != "string") { Dialog._runAjaxRequest(content, parameters, Dialog.confirm); return } content = content || ""; parameters = parameters || {}; var okLabel = parameters.okLabel ? parameters.okLabel : "Ok"; var cancelLabel = parameters.cancelLabel ? parameters.cancelLabel : "Cancel"; // Backward compatibility parameters = Object.extend(parameters, parameters.windowParameters || {}); parameters.windowParameters = parameters.windowParameters || {}; parameters.className = parameters.className || "alert"; var okButtonClass = "class ='" + (parameters.buttonClass ? parameters.buttonClass + " " : "") + " ok_button'" var cancelButtonClass = "class ='" + (parameters.buttonClass ? parameters.buttonClass + " " : "") + " cancel_button'" var content = "\ <div class='" + parameters.className + "_message'>" + content + "</div>\ <div class='" + parameters.className + "_buttons'>\ <input type='button' value='" + okLabel + "' onclick='Dialog.okCallback()' " + okButtonClass + "/>\ <input type='button' value='" + cancelLabel + "' onclick='Dialog.cancelCallback()' " + cancelButtonClass + "/>\ </div>\ "; return this._openDialog(content, parameters) }, alert: function(content, parameters) { // Get Ajax return before if (content && typeof content != "string") { Dialog._runAjaxRequest(content, parameters, Dialog.alert); return } content = content || ""; parameters = parameters || {}; var okLabel = parameters.okLabel ? parameters.okLabel : "Ok"; // Backward compatibility parameters = Object.extend(parameters, parameters.windowParameters || {}); parameters.windowParameters = parameters.windowParameters || {}; parameters.className = parameters.className || "alert"; var okButtonClass = "class ='" + (parameters.buttonClass ? parameters.buttonClass + " " : "") + " ok_button'" var content = "\ <div class='" + parameters.className + "_message'>" + content + "</div>\ <div class='" + parameters.className + "_buttons'>\ <input type='button' value='" + okLabel + "' onclick='Dialog.okCallback()' " + okButtonClass + "/>\ </div>"; return this._openDialog(content, parameters) }, info: function(content, parameters) { // Get Ajax return before if (content && typeof content != "string") { Dialog._runAjaxRequest(content, parameters, Dialog.info); return } content = content || ""; // Backward compatibility parameters = parameters || {}; parameters = Object.extend(parameters, parameters.windowParameters || {}); parameters.windowParameters = parameters.windowParameters || {}; parameters.className = parameters.className || "alert"; var content = "<div id='modal_dialog_message' class='" + parameters.className + "_message'>" + content + "</div>"; if (parameters.showProgress) content += "<div id='modal_dialog_progress' class='" + parameters.className + "_progress'> </div>";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -