Javascript CKEditor:通过JS从内联编辑器转义编辑器焦点(无需单击鼠标)?
我正在开发一个记录笔记的应用程序,它用来公开动态创建的可编辑div。(我使用的是CKEditor版本4.5.8。) 使用内联编辑器时,您可以将鼠标从div上移开以离开编辑模式,这将导致以下行为更改:Javascript CKEditor:通过JS从内联编辑器转义编辑器焦点(无需单击鼠标)?,javascript,jquery,ckeditor,Javascript,Jquery,Ckeditor,我正在开发一个记录笔记的应用程序,它用来公开动态创建的可编辑div。(我使用的是CKEditor版本4.5.8。) 使用内联编辑器时,您可以将鼠标从div上移开以离开编辑模式,这将导致以下行为更改: div周围的蓝色高光消失 闪烁的光标消失了 按键不再“键入”到div中(即,编辑器现在处于非活动状态) 但是我不知道如何避开编辑器焦点(即再现上述更改),而不要求用户实际单击鼠标。以下是我迄今为止所尝试的: 在内联可编辑元素上调用Jquery.blur():这会从视觉上移除焦点,并CKEDIT
- div周围的蓝色高光消失
- 闪烁的光标消失了
- 按键不再“键入”到div中(即,编辑器现在处于非活动状态)
- 在内联可编辑元素上调用Jquery
:这会从视觉上移除焦点,并.blur()
变为CKEDITOR.currentInstance
;但是按键仍然会导致字符被添加到div中,从而重新激活焦点null
- 在内联可编辑元素上调用Jquery
——没有可见效果.removeClass('cke\u focus')
- 调用Jquery
。在页面上的其他元素上单击()
- 调用了
-无可见效果CKEDITOR.currentInstance.focusManager.blur()
- 调用了
-无可见效果CKEDITOR.currentInstance.container.fire('blur')
- 调用了
-无可见效果CKEDITOR.currentInstance.element.fire('blur')
- 名为
-由于CKEDITOR.currentInstance.destroy()
属性或类似的原因,编辑器似乎在销毁后自动重新初始化。无论如何,div会保持焦点并继续捕捉按键contenteditable=“true”
我所要做的就是重新创建当你从一个内联编辑div中点击时发生的事情:焦点指示器消失,按键不再向div中添加文本。有什么办法可以做到吗?提前谢谢 诀窍是将模糊与删除当前所有选择范围相结合:
CKEDITOR.instances.editor1.on( 'contentDom', function() {
CKEDITOR.instances.editor1.document.on('keydown', function(event) {
if (event.data.getKey() == 27) {
$(CKEDITOR.currentInstance.element.$).blur();
window.getSelection().removeAllRanges();
}
});
});
还有一个工作示例:你检查答案了吗?谢谢@Dekel,没有,我还没有检查你的答案,因为你在我的时间半夜发了帖子。但如果答案对我有用,我会投票并接受,所以不必担心我忘记了你的答案。当然:)没问题,只是想确保你收到通知。谢谢