【发布时间】:2013-03-09 17:49:31
【问题描述】:
我想将插入符号放在文本末尾 focus() 之后。
CKEditor 3 有很多解决方案,我尝试了其中的三个,但它们似乎不适用于 CKEditor 4。
注意:我正在使用 contenteditable="true" 的内联编辑。
【问题讨论】:
标签: ckeditor
我想将插入符号放在文本末尾 focus() 之后。
CKEditor 3 有很多解决方案,我尝试了其中的三个,但它们似乎不适用于 CKEditor 4。
注意:我正在使用 contenteditable="true" 的内联编辑。
【问题讨论】:
标签: ckeditor
这应该可以完成工作(主题和内联编辑器上的 WFM):
CKEDITOR.inline( 'editable', {
on: {
focus: function( evt ) {
setTimeout( function() {
var editor = evt.editor,
range = editor.createRange();
range.moveToElementEditEnd( editor.editable() );
range.select();
range.scrollIntoView();
}, 100 );
}
}
} );
请注意,超时是必需的,因为焦点选择会自动放置在开始或单击的位置,因此您需要等待一段时间才能覆盖该行为。您当然可以检查更短的超时时间。
【讨论】:
instanceReady(),在调用editor.focus() 之后,我有什么理由不这样做吗?它似乎工作正常,至少在 Chrome 25 中......
editor.focus()放在editor#instanceReady监听器里面吗?应该没问题。如果您遇到任何麻烦,那么短的 setTimeout 应该会有所帮助:)。您也可以在editor#instanceReady 中添加editor#focus 侦听器,但会导致不必要的冗长。