我在 CKEditor 4.4.0中使用可编辑小部件。 我已经创建了一个带有一个可编辑元素的小部件,它可以正常工作。
但我希望用户可以在创建后立即编辑可编辑部分。
我尝试过的事情:
获取窗口小部件可编辑,如果刚刚创建 - 在窗口小部件就绪事件上调用 .focus()方法此可编辑:
widget.editables.content.focus();
我发现 - 只有在焦点调用被称为延迟时它才会起作用。
所以基本上它适用于除Chrome以外的所有浏览器。
在widget.editables.content.focus()
调用焦点之后的所有浏览器中,实际上都放入了小部件的可编辑状态,因为widget.focusedEditable
变量包含正确的值。
但在Chrome widget.focusedEditable
变量中,即使在widget.editables.content.focus()
调用后,变量也会保持为空。
答案 0 :(得分:2)
没有样本很难说,但我会检查一件事 - 尝试在嵌套的可编辑中放置选择。您可以使用range#moveToElementEditablePosition
在正确的位置设置范围位置,然后selection.selectRanges( [ range ] )
:
nestedEditable.focus();
var range = editor.createRange();
range.moveToElementEditablePosition( nestedEditable );
editor.getSelection().selectRanges( [ range ] );
聚焦可能还不够,因为焦点与选择的关系并不像看起来那么紧密。 Widget系统在包含选择时考虑嵌套的可编辑焦点。如果您想更密切地调试它,请参阅:
selectionChange
监听器。