【问题标题】:CKeditor: don't lose focus when clicking another elementCKeditor:单击另一个元素时不要失去焦点
【发布时间】:2013-05-19 10:40:59
【问题描述】:

有人知道如何使用 CKEditor 焦点管理器吗?

当我点击几个 DOM 元素时,我需要将焦点保持在当前编辑器会话上吗?

this page

滑块下方的三列是可编辑的。

想象一下我在第一栏中写的。当我想插入一个 youtube 视频时,我在滑块上方的文本字段中传递了一个 youtube URL,但是当我单击文本输入字段时,我失去了编辑器焦点。所以我必须再次点击编辑器,然后我才能按下“插入媒体”按钮。

当我单击某些页面元素时,使用 FocusManager 是否可以将焦点保持在当前编辑器上?

谢谢

【问题讨论】:

    标签: ckeditor


    【解决方案1】:

    使用editorInstance.focusManager.add() method。这应该可以解决您的问题。

    【讨论】:

    • 我尝试使用以下代码:var focusManager = new CKEDITOR.focusManager( editor ); var header = document.getElementById( 'header' ); editor.focusManage.add( header ); 其中标题是我的工具栏。不工作......这个功能没有很好的记录! (我也更新了示例)
    • 使用CKEDITOR.dom.element代替原生元素:CKEDITOR.instances.editor1.focusManager.add( CKEDITOR.document.getById( 'header' ), 1 )
    • 我现在正在学习 javascript,所以也许我在做一些错误,但是如果我使用你的代码,编辑器工具栏不会出现在 javascript 控制台中并且没有错误!
    • 我注意到你是 CKeditor 的核心开发者,所以我想你是对的,我做错了什么,但我尝试了几种解决方案,有时我会失去焦点,有时编辑器不会出现。我的页面上有多个内联编辑器,所以我有多个会话,所以我想我必须在每个实例上将标题添加到焦点管理器。
    • 好的,我解决了部分问题! var aggiunta = new CKEDITOR.dom.element( document.getElementById( 'header' ) ); var editor = CKEDITOR.currentInstance; CKEDITOR.currentInstance.focusManager.add( aggiunta, 1 ) 现在标题已添加到焦点管理器,但我的页面中有多个编辑器,我认为 CKEditor 只能为一个编辑器添加一个元素。顺便说一句,现在在我的示例中,文本框总是调用同一个编辑器......我认为要完成我需要的结果,我必须将元素添加到当前编辑器并从焦点管理器中删除元素 onBlur 对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多