【发布时间】:2011-05-26 08:47:07
【问题描述】:
我有可以添加到页面上的文本小部件。单击应将 div 激活为所见即所得的编辑器。在编辑器之外的任何地方单击都会破坏编辑器,并将新内容写入 div。
在准备回调的文档中:
var ckeditorConfig = {
toolbar :
[
[ 'Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink' ],
[ 'Font', 'FontSize']
],
toolbarCanCollapse : false,
toolbarLocation : 'top',
resize_enabled : false,
removePlugins : 'maximize,resize',
};
window.ckeditorHover = false;
$('.we-widget-wrapper').hover(
function(){
window.ckeditorHover = true;
},
function(){
window.ckeditorHover = false;
}
);
$('.we-widget-textbox')
.click(function(e){
e.stopPropagation();
var id = "" + $(this).attr('id');
if (CKEDITOR.currentInstance){
CKEDITOR.currentInstance.destroy();
}
CKEDITOR.replace(id, ckeditorConfig);
});
$('html')
.click(function(e){
if(!window.ckeditorHover){
if (CKEDITOR.currentInstance){
CKEDITOR.currentInstance.destroy();
}
}
});
html部分:
<div class='we-widget-wrapper'>
<div id='textbox01' class='we-widget-textbox we-widget'>
<p>Some text here...</p>
</div>
</div>
我已经将两者都包装在 we-widget-wrapper 类中,因为 CKEditor 暂时隐藏了我的 div,并在它下面附加了它自己的 div,我想捕捉鼠标是否在编辑器或小部件 div 上。
这很好用,除非我在 div 上快速单击,然后编辑器和 div 都消失了。
【问题讨论】:
-
您好,发布您的(相关)html 源代码有什么难的?此操作使帮助变得更容易。注意:一个单独的问题总是需要一个单独的解决方案。
-
嗨。我虽然没有必要发布整个 html 代码。其余的并没有改变,只有这一部分让我感到困扰。我认为以这种方式指出它会更清晰,这样就不必遍历与此问题无关的所有其他代码。示例中的 div 可以位于页面中的任何位置。稍后它们将被动态添加。我只是在一个空白页面上使用这个 div 来测试编辑器的行为。
标签: javascript tinymce ckeditor wysiwyg