【问题标题】:How to place the caret at the end in CKEditor 4?如何在 CKEditor 4 中将插入符号放在末尾?
【发布时间】:2013-03-09 17:49:31
【问题描述】:

我想将插入符号放在文本末尾 focus() 之后。

CKEditor 3 有很多解决方案,我尝试了其中的三个,但它们似乎不适用于 CKEditor 4。

注意:我正在使用 contenteditable="true" 的内联编辑。

【问题讨论】:

    标签: ckeditor


    【解决方案1】:

    这应该可以完成工作(主题和内联编辑器上的 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 侦听器,但会导致不必要的冗长。
    猜你喜欢
    • 1970-01-01
    • 2020-05-23
    • 2016-09-15
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多