///import core
///commands 全屏
///commandsName FullScreen
///commandsTitle 全屏
(function () {
var utils = baidu.editor.utils,
uiUtils = baidu.editor.ui.uiUtils,
UIBase = baidu.editor.ui.UIBase,
domUtils = baidu.editor.dom.domUtils;
var nodeStack = [];
function EditorUI(options) {
this.initOptions(options);
this.initEditorUI();
}
EditorUI.prototype = {
uiName:'editor',
initEditorUI:function () {
this.editor.ui = this;
this._dialogs = {};
this.initUIBase();
this._initToolbars();
var editor = this.editor,
me = this;
editor.addListener('ready', function () {
//提供getDialog方法
editor.getDialog = function (name) {
return editor.ui._dialogs[name + "Dialog"];
};
domUtils.on(editor.window, 'scroll', function (evt) {
baidu.editor.ui.Popup.postHide(evt);
});
//提供编辑器实时宽高(全屏时宽高不变化)
editor.ui._actualFrameWidth = editor.options.initialFrameWidth;
UE.browser.ie && UE.browser.version === 6 && editor.container.ownerDocument.execCommand("BackgroundImageCache", false, true);
//display bottom-bar label based on config
if (editor.options.elementPathEnabled) {
editor.ui.getDom('elementpath').innerHTML = '
' + editor.getLang("elementPathTip") + ':
';
}
if (editor.options.wordCount) {
function countFn() {
setCount(editor,me);
domUtils.un(editor.document, "click", arguments.callee);
}
domUtils.on(editor.document, "click", countFn);
editor.ui.getDom('wordcount').innerHTML = editor.getLang("wordCountTip");
}
editor.ui._scale();
if (editor.options.scaleEnabled) {
if (editor.autoHeightEnabled) {
editor.disableAutoHeight();
}
me.enableScale();
} else {
me.disableScale();
}
if (!editor.options.elementPathEnabled && !editor.options.wordCount && !editor.options.scaleEnabled) {
editor.ui.getDom('elementpath').style.display = "none";
editor.ui.getDom('wordcount').style.display = "none";
editor.ui.getDom('scale').style.display = "none";
}
if (!editor.selection.isFocus())return;
editor.fireEvent('selectionchange', false, true);
});
editor.addListener('mousedown', function (t, evt) {
var el = evt.target || evt.srcElement;
baidu.editor.ui.Popup.postHide(evt, el);
baidu.editor.ui.ShortCutMenu.postHide(evt);
});
editor.addListener("delcells", function () {
if (UE.ui['edittip']) {
new UE.ui['edittip'](editor);
}
editor.getDialog('edittip').open();
});
var pastePop, isPaste = false, timer;
editor.addListener("afterpaste", function () {
if(editor.queryCommandState('pasteplain'))
return;
if(baidu.editor.ui.PastePicker){
pastePop = new baidu.editor.ui.Popup({
content:new baidu.editor.ui.PastePicker({editor:editor}),
editor:editor,
className:'edui-wordpastepop'
});
pastePop.render();
}
isPaste = true;
});
editor.addListener("afterinserthtml", function () {
clearTimeout(timer);
timer = setTimeout(function () {
if (pastePop && (isPaste || editor.ui._isTransfer)) {
if(pastePop.isHidden()){
var span = domUtils.createElement(editor.document, 'span', {
'style':"line-height:0px;",
'innerHTML':'\ufeff'
}),
range = editor.selection.getRange();
range.insertNode(span);
var tmp= getDomNode(span, 'firstChild', 'previousSibling');
tmp && pastePop.showAnchor(tmp.nodeType == 3 ? tmp.parentNode : tmp);
domUtils.remove(span);
}else{
pastePop.show();
}
delete editor.ui._isTransfer;
isPaste = false;
}
}, 200)
});
editor.addListener('contextmenu', function (t, evt) {
baidu.editor.ui.Popup.postHide(evt);
});
editor.addListener('keydown', function (t, evt) {
if (pastePop) pastePop.dispose(evt);
var keyCode = evt.keyCode || evt.which;
if(evt.altKey&&keyCode==90){
UE.ui.buttons['fullscreen'].onclick();
}
});
editor.addListener('wordcount', function (type) {
setCount(this,me);
});
function setCount(editor,ui) {
editor.setOpt({
wordCount:true,
maximumWords:10000,
wordCountMsg:editor.options.wordCountMsg || editor.getLang("wordCountMsg"),
wordOverFlowMsg:editor.options.wordOverFlowMsg || editor.getLang("wordOverFlowMsg")
});
var opt = editor.options,
max = opt.maximumWords,
msg = opt.wordCountMsg ,
errMsg = opt.wordOverFlowMsg,
countDom = ui.getDom('wordcount');
if (!opt.wordCount) {
return;
}
var count = editor.getContentLength(true);
if (count > max) {
countDom.innerHTML = errMsg;
editor.fireEvent("wordcountoverflow");
} else {
countDom.innerHTML = msg.replace("{#leave}", max - count).replace("{#count}", count);
}
}
editor.addListener('selectionchange', function () {
if (editor.options.elementPathEnabled) {
me[(editor.queryCommandState('elementpath') == -1 ? 'dis' : 'en') + 'ableElementPath']()
}
if (editor.options.scaleEnabled) {
me[(editor.queryCommandState('scale') == -1 ? 'dis' : 'en') + 'ableScale']();
}
});
var popup = new baidu.editor.ui.Popup({
editor:editor,
content:'',
className:'edui-bubble',
_onEditButtonClick:function () {
this.hide();
editor.ui._dialogs.linkDialog.open();
},
_onImgEditButtonClick:function (name) {
this.hide();
editor.ui._dialogs[name] && editor.ui._dialogs[name].open();
},
_onImgSetFloat:function (value) {
this.hide();
editor.execCommand("imagefloat", value);
},
_setIframeAlign:function (value) {
var frame = popup.anchorEl;
var newFrame = frame.cloneNode(true);
switch (value) {
case -2:
newFrame.setAttribute("align", "");
break;
case -1:
newFrame.setAttribute("align", "left");
break;
case 1:
newFrame.setAttribute("align", "right");
break;
}
frame.parentNode.insertBefore(newFrame, frame);
domUtils.remove(frame);
popup.anchorEl = newFrame;
popup.showAnchor(popup.anchorEl);
},
_updateIframe:function () {
var frame = editor._iframe = popup.anchorEl;
if(domUtils.hasClass(frame, 'ueditor_baidumap')) {
editor.selection.getRange().selectNode(frame).select();
editor.ui._dialogs.mapDialog.open();
popup.hide();
} else {
editor.ui._dialogs.insertframeDialog.open();
popup.hide();
}
},
_onRemoveButtonClick:function (cmdName) {
editor.execCommand(cmdName);
this.hide();
},
queryAutoHide:function (el) {
if (el && el.ownerDocument == editor.document) {
if (el.tagName.toLowerCase() == 'img' || domUtils.findParentByTagName(el, 'a', true)) {
return el !== popup.anchorEl;
}
}
return baidu.editor.ui.Popup.prototype.queryAutoHide.call(this, el);
}
});
popup.render();
if (editor.options.imagePopup) {
editor.addListener('mouseover', function (t, evt) {
evt = evt || window.event;
var el = evt.target || evt.srcElement;
if (editor.ui._dialogs.insertframeDialog && /iframe/ig.test(el.tagName)) {
var html = popup.formatHtml(
'' + editor.getLang("property") + ': ' + editor.getLang("default") + ' ' + editor.getLang("justifyleft") + ' ' + editor.getLang("justifyright") + ' ' +
' ' + editor.getLang("modify") + '');
if (html) {
popup.getDom('content').innerHTML = html;
popup.anchorEl = el;
popup.showAnchor(popup.anchorEl);
} else {
popup.hide();
}
}
});
editor.addListener('selectionchange', function (t, causeByUi) {
if (!causeByUi) return;
var html = '', str = "",
img = editor.selection.getRange().getClosedNode(),
dialogs = editor.ui._dialogs;
if (img && img.tagName == 'IMG') {
var dialogName = 'insertimageDialog';
if (img.className.indexOf("edui-faked-video") != -1 || img.className.indexOf("edui-upload-video") != -1) {
dialogName = "insertvideoDialog"
}
if (img.className.indexOf("edui-faked-webapp") != -1) {
dialogName = "webappDialog"
}
if (img.src.indexOf("http://api.map.baidu.com") != -1) {
dialogName = "mapDialog"
}
if (img.className.indexOf("edui-faked-music") != -1) {
dialogName = "musicDialog"
}
if (img.src.indexOf("http://maps.google.com/maps/api/staticmap") != -1) {
dialogName = "gmapDialog"
}
if (img.getAttribute("anchorname")) {
dialogName = "anchorDialog";
html = popup.formatHtml(
'' + editor.getLang("property") + ': ' + editor.getLang("modify") + ' ' +
'' + editor.getLang("delete") + '');
}
if (img.getAttribute("word_img")) {
//todo 放到dialog去做查询
editor.word_img = [img.getAttribute("word_img")];
dialogName = "wordimageDialog"
}
if(domUtils.hasClass(img, 'loadingclass') || domUtils.hasClass(img, 'loaderrorclass')) {
dialogName = "";
}
if (!dialogs[dialogName]) {
return;
}
str = '' + editor.getLang("property") + ': '+
'' + editor.getLang("default") + ' ' +
'' + editor.getLang("justifyleft") + ' ' +
'' + editor.getLang("justifyright") + ' ' +
'' + editor.getLang("justifycenter") + ' '+
'' + editor.getLang("modify") + '';
!html && (html = popup.formatHtml(str))
}
if (editor.ui._dialogs.linkDialog) {
var link = editor.queryCommandValue('link');
var url;
if (link && (url = (link.getAttribute('_href') || link.getAttribute('href', 2)))) {
var txt = url;
if (url.length > 30) {
txt = url.substring(0, 20) + "...";
}
if (html) {
html += ''
}
html += popup.formatHtml(
'' + editor.getLang("anthorMsg") + ': ' + txt + '' +
' ' + editor.getLang("modify") + '' +
' ' + editor.getLang("clear") + '');
popup.showAnchor(link);
}
}
if (html) {
popup.getDom('content').innerHTML = html;
popup.anchorEl = img || link;
popup.showAnchor(popup.anchorEl);
} else {
popup.hide();
}
});
}
},
_initToolbars:function () {
var editor = this.editor;
var toolbars = this.toolbars || [];
var toolbarUis = [];
var extraUIs = [];
for (var i = 0; i < toolbars.length; i++) {
var toolbar = toolbars[i];
var toolbarUi = new baidu.editor.ui.Toolbar({theme:editor.options.theme});
for (var j = 0; j < toolbar.length; j++) {
var toolbarItem = toolbar[j];
var toolbarItemUi = null;
if (typeof toolbarItem == 'string') {
toolbarItem = toolbarItem.toLowerCase();
if (toolbarItem == '|') {
toolbarItem = 'Separator';
}
if(toolbarItem == '||'){
toolbarItem = 'Breakline';
}
var ui = baidu.editor.ui[toolbarItem];
if (ui) {
if(utils.isFunction(ui)){
toolbarItemUi = new baidu.editor.ui[toolbarItem](editor);
}else{
if(ui.id && ui.id != editor.key){
continue;
}
var itemUI = ui.execFn.call(editor,editor,toolbarItem);
if(itemUI){
if(ui.index === undefined){
toolbarUi.add(itemUI);
continue;
}else{
extraUIs.push({
index:ui.index,
itemUI:itemUI
})
}
}
}
}
//fullscreen这里单独处理一下,放到首行去
if (toolbarItem == 'fullscreen') {
if (toolbarUis && toolbarUis[0]) {
toolbarUis[0].items.splice(0, 0, toolbarItemUi);
} else {
toolbarItemUi && toolbarUi.items.splice(0, 0, toolbarItemUi);
}
continue;
}
} else {
toolbarItemUi = toolbarItem;
}
if (toolbarItemUi && toolbarItemUi.id) {
toolbarUi.add(toolbarItemUi);
}
}
toolbarUis[i] = toolbarUi;
}
//接受外部定制的UI
utils.each(extraUIs,function(obj){
toolbarUi.add(obj.itemUI,obj.index)
});
this.toolbars = toolbarUis;
},
getHtmlTpl:function () {
return '' +
'
' +
'
' +
'
' +
//modify wdcount by matao
'
' +
'
' +
'
';
},
showWordImageDialog:function () {
this._dialogs['wordimageDialog'].open();
},
renderToolbarBoxHtml:function () {
var buff = [];
for (var i = 0; i < this.toolbars.length; i++) {
buff.push(this.toolbars[i].renderHtml());
}
return buff.join('');
},
setFullScreen:function (fullscreen) {
var editor = this.editor,
container = editor.container.parentNode.parentNode;
if (this._fullscreen != fullscreen) {
this._fullscreen = fullscreen;
this.editor.fireEvent('beforefullscreenchange', fullscreen);
if (baidu.editor.browser.gecko) {
var bk = editor.selection.getRange().createBookmark();
}
if (fullscreen) {
while (container.tagName != "BODY") {
var position = baidu.editor.dom.domUtils.getComputedStyle(container, "position");
nodeStack.push(position);
container.style.position = "static";
container = container.parentNode;
}
this._bakHtmlOverflow = document.documentElement.style.overflow;
this._bakBodyOverflow = document.body.style.overflow;
this._bakAutoHeight = this.editor.autoHeightEnabled;
this._bakScrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
this._bakEditorContaninerWidth = editor.iframe.parentNode.offsetWidth;
if (this._bakAutoHeight) {
//当全屏时不能执行自动长高
editor.autoHeightEnabled = false;
this.editor.disableAutoHeight();
}
document.documentElement.style.overflow = 'hidden';
//修复,滚动条不收起的问题
window.scrollTo(0,window.scrollY);
this._bakCssText = this.getDom().style.cssText;
this._bakCssText1 = this.getDom('iframeholder').style.cssText;
editor.iframe.parentNode.style.width = '';
this._updateFullScreen();
} else {
while (container.tagName != "BODY") {
container.style.position = nodeStack.shift();
container = container.parentNode;
}
this.getDom().style.cssText = this._bakCssText;
this.getDom('iframeholder').style.cssText = this._bakCssText1;
if (this._bakAutoHeight) {
editor.autoHeightEnabled = true;
this.editor.enableAutoHeight();
}
document.documentElement.style.overflow = this._bakHtmlOverflow;
document.body.style.overflow = this._bakBodyOverflow;
editor.iframe.parentNode.style.width = this._bakEditorContaninerWidth + 'px';
window.scrollTo(0, this._bakScrollTop);
}
if (browser.gecko && editor.body.contentEditable === 'true') {
var input = document.createElement('input');
document.body.appendChild(input);
editor.body.contentEditable = false;
setTimeout(function () {
input.focus();
setTimeout(function () {
editor.body.contentEditable = true;
editor.fireEvent('fullscreenchanged', fullscreen);
editor.selection.getRange().moveToBookmark(bk).select(true);
baidu.editor.dom.domUtils.remove(input);
fullscreen && window.scroll(0, 0);
}, 0)
}, 0)
}
if(editor.body.contentEditable === 'true'){
this.editor.fireEvent('fullscreenchanged', fullscreen);
this.triggerLayout();
}
}
},
_updateFullScreen:function () {
if (this._fullscreen) {
var vpRect = uiUtils.getViewportRect();
this.getDom().style.cssText = 'border:0;position:absolute;left:0;top:' + (this.editor.options.topOffset || 0) + 'px;width:' + vpRect.width + 'px;height:' + vpRect.height + 'px;z-index:' + (this.getDom().style.zIndex * 1 + 100);
uiUtils.setViewportOffset(this.getDom(), { left:0, top:this.editor.options.topOffset || 0 });
this.editor.setHeight(vpRect.height - this.getDom('toolbarbox').offsetHeight - this.getDom('bottombar').offsetHeight - (this.editor.options.topOffset || 0),true);
//不手动调一下,会导致全屏失效
if(browser.gecko){
try{
window.onresize();
}catch(e){
}
}
}
},
_updateElementPath:function () {
var bottom = this.getDom('elementpath'), list;
if (this.elementPathEnabled && (list = this.editor.queryCommandValue('elementpath'))) {
var buff = [];
for (var i = 0, ci; ci = list[i]; i++) {
buff[i] = this.formatHtml('' + ci + '');
}
bottom.innerHTML = '' + this.editor.getLang("elementPathTip") + ': ' + buff.join(' > ') + '
';
} else {
bottom.style.display = 'none'
}
},
disableElementPath:function () {
var bottom = this.getDom('elementpath');
bottom.innerHTML = '';
bottom.style.display = 'none';
this.elementPathEnabled = false;
},
enableElementPath:function () {
var bottom = this.getDom('elementpath');
bottom.style.display = '';
this.elementPathEnabled = true;
this._updateElementPath();
},
_scale:function () {
var doc = document,
editor = this.editor,
editorHolder = editor.container,
editorDocument = editor.document,
toolbarBox = this.getDom("toolbarbox"),
bottombar = this.getDom("bottombar"),
scale = this.getDom("scale"),
scalelayer = this.getDom("scalelayer");
var isMouseMove = false,
position = null,
minEditorHeight = 0,
minEditorWidth = editor.options.minFrameWidth,
pageX = 0,
pageY = 0,
scaleWidth = 0,
scaleHeight = 0;
function down() {
position = domUtils.getXY(editorHolder);
if (!minEditorHeight) {
minEditorHeight = editor.options.minFrameHeight + toolbarBox.offsetHeight + bottombar.offsetHeight;
}
scalelayer.style.cssText = "position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:" + editorHolder.offsetWidth + "px;height:"
+ editorHolder.offsetHeight + "px;z-index:" + (editor.options.zIndex + 1);
domUtils.on(doc, "mousemove", move);
domUtils.on(editorDocument, "mouseup", up);
domUtils.on(doc, "mouseup", up);
}
var me = this;
//by xuheng 全屏时关掉缩放
this.editor.addListener('fullscreenchanged', function (e, fullScreen) {
if (fullScreen) {
me.disableScale();
} else {
if (me.editor.options.scaleEnabled) {
me.enableScale();
var tmpNode = me.editor.document.createElement('span');
me.editor.body.appendChild(tmpNode);
me.editor.body.style.height = Math.max(domUtils.getXY(tmpNode).y, me.editor.iframe.offsetHeight - 20) + 'px';
domUtils.remove(tmpNode)
}
}
});
function move(event) {
clearSelection();
var e = event || window.event;
pageX = e.pageX || (doc.documentElement.scrollLeft + e.clientX);
pageY = e.pageY || (doc.documentElement.scrollTop + e.clientY);
scaleWidth = pageX - position.x;
scaleHeight = pageY - position.y;
if (scaleWidth >= minEditorWidth) {
isMouseMove = true;
scalelayer.style.width = scaleWidth + 'px';
}
if (scaleHeight >= minEditorHeight) {
isMouseMove = true;
scalelayer.style.height = scaleHeight + "px";
}
}
function up() {
if (isMouseMove) {
isMouseMove = false;
editor.ui._actualFrameWidth = scalelayer.offsetWidth - 2;
editorHolder.style.width = editor.ui._actualFrameWidth + 'px';
editor.setHeight(scalelayer.offsetHeight - bottombar.offsetHeight - toolbarBox.offsetHeight - 2,true);
}
if (scalelayer) {
scalelayer.style.display = "none";
}
clearSelection();
domUtils.un(doc, "mousemove", move);
domUtils.un(editorDocument, "mouseup", up);
domUtils.un(doc, "mouseup", up);
}
function clearSelection() {
if (browser.ie)
doc.selection.clear();
else
window.getSelection().removeAllRanges();
}
this.enableScale = function () {
//trace:2868
if (editor.queryCommandState("source") == 1) return;
scale.style.display = "";
this.scaleEnabled = true;
domUtils.on(scale, "mousedown", down);
};
this.disableScale = function () {
scale.style.display = "none";
this.scaleEnabled = false;
domUtils.un(scale, "mousedown", down);
};
},
isFullScreen:function () {
return this._fullscreen;
},
postRender:function () {
UIBase.prototype.postRender.call(this);
for (var i = 0; i < this.toolbars.length; i++) {
this.toolbars[i].postRender();
}
var me = this;
var timerId,
domUtils = baidu.editor.dom.domUtils,
updateFullScreenTime = function () {
clearTimeout(timerId);
timerId = setTimeout(function () {
me._updateFullScreen();
});
};
domUtils.on(window, 'resize', updateFullScreenTime);
me.addListener('destroy', function () {
domUtils.un(window, 'resize', updateFullScreenTime);
clearTimeout(timerId);
})
},
showToolbarMsg:function (msg, flag) {
this.getDom('toolbarmsg_label').innerHTML = msg;
this.getDom('toolbarmsg').style.display = '';
//
if (!flag) {
var w = this.getDom('upload_dialog');
w.style.display = 'none';
}
},
hideToolbarMsg:function () {
this.getDom('toolbarmsg').style.display = 'none';
},
mapUrl:function (url) {
return url ? url.replace('~/', this.editor.options.UEDITOR_HOME_URL || '') : ''
},
triggerLayout:function () {
var dom = this.getDom();
if (dom.style.zoom == '1') {
dom.style.zoom = '100%';
} else {
dom.style.zoom = '1';
}
}
};
utils.inherits(EditorUI, baidu.editor.ui.UIBase);
var instances = {};
UE.ui.Editor = function (options) {
var editor = new UE.Editor(options);
editor.options.editor = editor;
utils.loadFile(document, {
href:editor.options.themePath + editor.options.theme + "/_css/ueditor.css",
tag:"link",
type:"text/css",
rel:"stylesheet"
});
var oldRender = editor.render;
editor.render = function (holder) {
if (holder.constructor === String) {
editor.key = holder;
instances[holder] = editor;
}
utils.domReady(function () {
editor.langIsReady ? renderUI() : editor.addListener("langReady", renderUI);
function renderUI() {
editor.setOpt({
labelMap:editor.options.labelMap || editor.getLang('labelMap')
});
new EditorUI(editor.options);
if (holder) {
if (holder.constructor === String) {
holder = document.getElementById(holder);
}
holder && holder.getAttribute('name') && ( editor.options.textarea = holder.getAttribute('name'));
if (holder && /script|textarea/ig.test(holder.tagName)) {
var newDiv = document.createElement('div');
holder.parentNode.insertBefore(newDiv, holder);
var cont = holder.value || holder.innerHTML;
editor.options.initialContent = /^[\t\r\n ]*$/.test(cont) ? editor.options.initialContent :
cont.replace(/>[\n\r\t]+([ ]{4})+/g, '>')
.replace(/[\n\r\t]+([ ]{4})+[\n\r\t]+<');
holder.className && (newDiv.className = holder.className);
holder.style.cssText && (newDiv.style.cssText = holder.style.cssText);
if (/textarea/i.test(holder.tagName)) {
editor.textarea = holder;
editor.textarea.style.display = 'none';
} else {
holder.parentNode.removeChild(holder);
}
if(holder.id){
newDiv.id = holder.id;
domUtils.removeAttributes(holder,'id');
}
holder = newDiv;
holder.innerHTML = '';
}
}
domUtils.addClass(holder, "edui-" + editor.options.theme);
editor.ui.render(holder);
var opt = editor.options;
//给实例添加一个编辑器的容器引用
editor.container = editor.ui.getDom();
var parents = domUtils.findParents(holder,true);
var displays = [];
for(var i = 0 ,ci;ci=parents[i];i++){
displays[i] = ci.style.display;
ci.style.display = 'block'
}
if (opt.initialFrameWidth) {
opt.minFrameWidth = opt.initialFrameWidth;
} else {
opt.minFrameWidth = opt.initialFrameWidth = holder.offsetWidth;
var styleWidth = holder.style.width;
if(/%$/.test(styleWidth)) {
opt.initialFrameWidth = styleWidth;
}
}
if (opt.initialFrameHeight) {
opt.minFrameHeight = opt.initialFrameHeight;
} else {
opt.initialFrameHeight = opt.minFrameHeight = holder.offsetHeight;
}
for(var i = 0 ,ci;ci=parents[i];i++){
ci.style.display = displays[i]
}
//编辑器最外容器设置了高度,会导致,编辑器不占位
//todo 先去掉,没有找到原因
if(holder.style.height){
holder.style.height = ''
}
editor.container.style.width = opt.initialFrameWidth + (/%$/.test(opt.initialFrameWidth) ? '' : 'px');
editor.container.style.zIndex = opt.zIndex;
oldRender.call(editor, editor.ui.getDom('iframeholder'));
editor.fireEvent("afteruiready");
}
})
};
return editor;
};
/**
* @file
* @name UE
* @short UE
* @desc UEditor的顶部命名空间
*/
/**
* @name getEditor
* @since 1.2.4+
* @grammar UE.getEditor(id,[opt]) => Editor实例
* @desc 提供一个全局的方法得到编辑器实例
*
* * ''id'' 放置编辑器的容器id, 如果容器下的编辑器已经存在,就直接返回
* * ''opt'' 编辑器的可选参数
* @example
* UE.getEditor('containerId',{onready:function(){//创建一个编辑器实例
* this.setContent('hello')
* }});
* UE.getEditor('containerId'); //返回刚创建的实例
*
*/
UE.getEditor = function (id, opt) {
var editor = instances[id];
if (!editor) {
editor = instances[id] = new UE.ui.Editor(opt);
editor.render(id);
}
return editor;
};
UE.delEditor = function (id) {
var editor;
if (editor = instances[id]) {
editor.key && editor.destroy();
delete instances[id]
}
};
UE.registerUI = function(uiName,fn,index,editorId){
utils.each(uiName.split(/\s+/), function (name) {
baidu.editor.ui[name] = {
id : editorId,
execFn:fn,
index:index
};
})
}
})();