⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 telligent_inlineeditor.js

📁 community server 源码
💻 JS
字号:
function Telligent_InlineEditorPanel(varName,containerId,stateId,editorVarName,fitEditorToWindow,onEditFunction,onSaveFunction,onCloseFunction){this._variableName=varName;this._container=document.getElementById(containerId);this._state=document.getElementById(stateId);this._editor=null;this._editorVariableName=editorVarName;this.OnEditFunction=onEditFunction;this.OnSaveFunction=onSaveFunction;this.OnCloseFunction=onCloseFunction;this._isEditing=false;this.FitEditorToWindow=fitEditorToWindow;this._abandonedContent=null;if(this._state.value.substr(0,6)=='value:')this._container.innerHTML=decodeURIComponent(this._state.value.substr(6));elsethis._state.value='value:'+encodeURIComponent(this._container.innerHTML);}Telligent_InlineEditorPanel.prototype.IsEditing=function(){return this._isEditing;}Telligent_InlineEditorPanel.prototype.Edit=function(parameter){if(!this.IsEditing()){if(!this._editor)this._editor=eval(this._editorVariableName);var styleContext=this._getCurrentStyles();this._editor.FitToWindow=this.FitEditorToWindow;this._editor._show(this._container);this._editor._setInlineEditorPanel(this,parameter);if(this._abandonedContent){this._editor._setContent(this._abandonedContent);this._abandonedContent=null;}elsethis._editor._setContent(this._container.innerHTML);this._editor._setStyleContext(styleContext);this._editor.Focus();this._isEditing=true;if(this.OnEditFunction)this.OnEditFunction(this);}}Telligent_InlineEditorPanel.prototype.Save=function(){if(this.IsEditing()){this._container.innerHTML=this._editor._getContent();this._state.value='value:'+encodeURIComponent(this._container.innerHTML);this._editor._hide();this._isEditing=false;if(this.OnSaveFunction)this.OnSaveFunction(this);}}Telligent_InlineEditorPanel.prototype.Close=function(){if(this.IsEditing()){this._editor._hide();this._isEditing=false;if(this.OnCloseFunction)this.OnCloseFunction(this);}}Telligent_InlineEditorPanel.prototype.Refresh=function(){if(this.IsEditing()){this._editor.FitToWindow=this.FitEditorToWindow;this._editor._show(this._container);}}Telligent_InlineEditorPanel.prototype.Dispose=function(){this._container=null;}Telligent_InlineEditorPanel.prototype.GetContent=function(){if(this.IsEditing())return this._editor._getContent();elsereturn this._container.innerHTML;}Telligent_InlineEditorPanel.prototype.SetContent=function(html){if(this.IsEditing())this._editor._setContent(html);else{this._abandonedContent=null;this._container.innerHTML=html;this._state.value='value:'+encodeURIComponent(html);}}Telligent_InlineEditorPanel.prototype._getCurrentStyles=function(){var currentStyle=new Array();currentStyle[currentStyle.length]=["fontSize",this._getCurrentStyle('font-size','fontSize')];currentStyle[currentStyle.length]=["fontFamily",this._getCurrentStyle('font-family','fontFamily')];currentStyle[currentStyle.length]=["fontWeight",this._getCurrentStyle('font-weight','fontWeight')];currentStyle[currentStyle.length]=["fontStyle",this._getCurrentStyle('font-style','fontStyle')];currentStyle[currentStyle.length]=["color",this._getCurrentStyle('color','color')];currentStyle[currentStyle.length]=["backgroundColor",this._getCurrentStyle('background-color','backgroundColor')];currentStyle[currentStyle.length]=["textDecoration",this._getCurrentStyle('text-decoration','textDecoration')];return currentStyle;}Telligent_InlineEditorPanel.prototype._getCurrentStyle=function(styleRule,jsStyleRule){if(document.defaultView&&document.defaultView.getComputedStyle)return document.defaultView.getComputedStyle(this._container,"").getPropertyValue(styleRule);else if(this._container.currentStyle)return this._container.currentStyle[jsStyleRule];return"";}function Telligent_DblClickInlineEditorPanel(varName,containerId,stateId,cssClass,hoverCssClass,editingCssClass,toolTip,editor,fitEditorToWindow,onEditFunction,onSaveFunction,onCloseFunction){this._variableName=varName;this._container=document.getElementById(containerId);this._inlineEditorPanel=new Telligent_InlineEditorPanel(this._variableName+'._inlineEditorPanel',containerId,stateId,editor,fitEditorToWindow,new Function('window.'+this._variableName+'._onEdit();'),new Function('window.'+this._variableName+'._onSave();'),new Function('window.'+this._variableName+'._onClose();'));this.OnEditFunction=onEditFunction;this.OnSaveFunction=onSaveFunction;this.OnCloseFunction=onCloseFunction;this.ToolTip=toolTip;this.CssClass=cssClass;this.HoverCssClass=hoverCssClass;this.EditingCssClass=editingCssClass;this.FitEditorToWindow=fitEditorToWindow;this._container.title=this.ToolTip;this._container.ondblclick=new Function("window."+this._variableName+".Edit(); return false;");this._container.onmouseover=new Function("window."+this._variableName+"._mouseOver();");this._container.onmouseout=new Function("window."+this._variableName+"._mouseOut();");this._container.className=this.CssClass;}Telligent_DblClickInlineEditorPanel.prototype.Edit=function(){this._container.className=this.CssClass;this._inlineEditorPanel.Edit();}Telligent_DblClickInlineEditorPanel.prototype.Dispose=function(){this._container=null;this._inlineEditorPanel.Dispose();}Telligent_DblClickInlineEditorPanel.prototype.Refresh=function(){this._inlineEditorPanel.FitEditorToWindow=this.FitEditorToWindow;this._inlineEditorPanel.Refresh();if(!this._inlineEditorPanel.IsEditing())this._container.className=this.CssClass;this._container.title=this.ToolTip;}Telligent_DblClickInlineEditorPanel.prototype.GetInlineEditorPanel=function(){return this._inlineEditorPanel;}Telligent_DblClickInlineEditorPanel.prototype._mouseOver=function(){if(!this._inlineEditorPanel.IsEditing()&&this._container.className==this.CssClass)this._container.className=this.HoverCssClass;}Telligent_DblClickInlineEditorPanel.prototype._mouseOut=function(){if(!this._inlineEditorPanel.IsEditing()&&this._container.className==this.HoverCssClass)this._container.className=this.CssClass;}Telligent_DblClickInlineEditorPanel.prototype._onEdit=function(){this._container.className=this.EditingCssClass;if(this.OnEditFunction)this.OnEditFunction(this);}Telligent_DblClickInlineEditorPanel.prototype._onSave=function(){this._container.className=this.CssClass;if(this.OnSaveFunction)this.OnSaveFunction(this);}Telligent_DblClickInlineEditorPanel.prototype._onClose=function(){this._container.className=this.CssClass;if(this.OnCloseFunction)this.OnCloseFunction(this);}function Telligent_InlineEditor(varName,containerId,setInlineEditorPanelFunction,getContentFunction,setContentFunction,getStyleContextElementFunction,setFocusFunction,resizeFunction,minimumWidth,minimumHeight){this._variableName=varName;this._container=document.getElementById(containerId);this._inlineEditorPanel=null;this._getContentFunction=getContentFunction;this._setContentFunction=setContentFunction;this._getStyleContextElementFunction=getStyleContextElementFunction;this._setFocusFunction=setFocusFunction;this._resizeFunction=resizeFunction;this.MinimumWidth=minimumWidth;this.MinimumHeight=minimumHeight;this.FitToWindow=false;this._initialized=false;this._popupPanel=null;this._ignoreClose=false;this._setInlineEditorPanelFunction=setInlineEditorPanelFunction;}Telligent_InlineEditor.prototype._setContent=function(html){if(!this._initialized)this._initialize();html=this._trim(html);if(this._setContentFunction)this._setContentFunction(html);}Telligent_InlineEditor.prototype._trim=function(text){return text.replace(/^\s+|\s+$/g,'');}Telligent_InlineEditor.prototype._getContent=function(){if(!this._initialized)this._initialize();if(this._getContentFunction)return this._getContentFunction();elsereturn"";}Telligent_InlineEditor.prototype._setInlineEditorPanel=function(inlineEditorPanel,parameter){this._inlineEditorPanel=inlineEditorPanel;this._ignoreClose=false;if(this._setInlineEditorPanelFunction)this._setInlineEditorPanelFunction(this._inlineEditorPanel,parameter);}Telligent_InlineEditor.prototype.Focus=function(){if(!this._initialized)this._initialize();if(this._setFocusFunction)this._setFocusFunction();}Telligent_InlineEditor.prototype._setStyleContext=function(styleArray){if(!this._initialized)this._initialize();if(!this._getStyleContextElementFunction)return;var element=this._getStyleContextElementFunction();if(!element)return;for(var i=0;i<styleArray.length;i++){try{eval('element.style.'+styleArray[i][0]+' = \''+styleArray[i][1]+'\';');}catch(err){}}}Telligent_InlineEditor.prototype._resize=function(width,height){if(!this._initialized)this._initialize();if(this._resizeFunction)this._resizeFunction(width,height);}Telligent_InlineEditor.prototype.Save=function(){if(!this._initialized)this._initialize();this._ignoreClose=true;if(this._inlineEditorPanel){this._inlineEditorPanel.Save();this._inlineEditorPanel._abandonedContent=null;}}Telligent_InlineEditor.prototype.Close=function(){if(!this._initialized)this._initialize();this._ignoreClose=true;if(this._inlineEditorPanel){this._inlineEditorPanel._abandonedContent=null;this._inlineEditorPanel.Close();}}Telligent_InlineEditor.prototype.IsShown=function(){if(!this._initialized)this._initialize();return this._popupPanel.IsShown();}Telligent_InlineEditor.prototype._hide=function(){this._ignoreClose=true;if(this._popupPanel)this._popupPanel.Hide();}Telligent_InlineEditor.prototype._show=function(element){if(!this._initialized)this._initialize();if(this.IsShown())this._popupPanel.Hide();var elementInfo=this._popupPanel._getElementInfo(element);var windowInfo=this._popupPanel._getWindowInfo();if(this.FitToWindow){var recalculateElementInfo=false;if(elementInfo.Top<windowInfo.ScrollY||elementInfo.Top+elementInfo.Height>windowInfo.ScrollY+windowInfo.Height){if(elementInfo.Height<windowInfo.Height)window.document.documentElement.scrollTop=elementInfo.Top-((windowInfo.Height-elementInfo.Height)/2);elsewindow.document.documentElement.scrollTop=elementInfo.Top;recalculateElementInfo=true;}if(elementInfo.Left<windowInfo.ScrollX||elementInfo.Left+elementInfo.Width>windowInfo.ScrollX+windowInfo.Width){if(elementInfo.Width<windowInfo.Width)window.document.documentElement.scrollLeft=elementInfo.Left-((windowInfo.Width-elementInfo.Width)/2);elsewindow.document.documentElement.scrollLeft=elementInfo.Left;recalculateElementInfo=true;}if(recalculateElementInfo)elementInfo=this._popupPanel._getElementInfo(element);}var width=elementInfo.Width;var left=elementInfo.Left;var height=elementInfo.Height;var top=elementInfo.Top;if(this.FitToWindow){if(width>windowInfo.Width){width=windowInfo.Width-(windowInfo.Width*.1);left+=(windowInfo.Width*.05);}if(height>windowInfo.Height){height=windowInfo.Height-(windowInfo.Height*.1);top+=(windowInfo.Height*.05);}}this._popupPanel.Show(left,top,0,0,true);this._resize((width<this.MinimumWidth&&this.MinimumWidth>0?this.MinimumWidth:width),(height<this.MinimumHeight&&this.MinimumHeight>0?this.MinimumHeight:height));this._popupPanel.Refresh();}Telligent_InlineEditor.prototype._initialize=function(){if(this._inititalized)return;this._popupPanel=new Telligent_PopupPanel(this._variableName+'._popupPanel',this.CssClass,'rightdown',100,null,new Function('window.'+this._variableName+'._popupPanelClosed();'),false,'');this._popupPanel._initialize();this._popupPanel.ClearPanelContent();this._popupPanel.AddNodeToPanel(this._container);this._container.style.display='block';this._initialized=true;}Telligent_InlineEditor.prototype._popupPanelClosed=function(){if(!this._ignoreClose){if(this._inlineEditorPanel){this._inlineEditorPanel._abandonedContent=this._getContent();this._inlineEditorPanel.Close();}}elsethis._ignoreClose=false;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -