如何将CKEditor内联窗口小部件单独放置在一行上时,将光标定位为correclty

时间:2017-02-24 18:49:59

标签: ckeditor

在使用内联窗口小部件重新加载CKEditor时,当在与窗口小部件相同的行上单击编辑器时,光标位于行的末尾。

当内联窗口小部件放置在没有任何其他内容的行上时,会出现此问题。我已经尝试更改html的结构,添加样式,并在父span中添加额外的空间。到目前为止,没有任何工作。

您可以在此处查看此问题:https://ckeditorexample.herokuapp.com

Widget SDK http://docs.ckeditor.com/#!/guide/widget_sdk_intro

小部件的源代码:

CKEDITOR.plugins.add('mywidget', {
    requires: 'widget',
    icons: 'mywidget',
    init: function (editor) {
        editor.widgets.add('mywidget', {
            button: 'Create a simple box',
            // draggable:true,
            inline: true,
            template: '<span class="mywidget">' +
            '<span class="mywidget-content" >....</span>' +
            '</span>',
            allowedContent: {
                'span': {
                    // propertiesOnly: true,
                    classes: '*'
                }
            },
            requiredContent: 'span(mywidget)',
            init: function () {

            },
            upcast: function (element) {
                return element.name == 'span' && element.hasClass('mywidget');
            },
            data: function () {
                if (this.data.name) {
                    $(this.element.$).find('.mywidget-content').html(this.data.name);
                }
            }
        })
    }
})

1 个答案:

答案 0 :(得分:0)

好像光标正在发送到包含<p>...</p>的末尾。

在我的特定情况下(通过不同的努力),我最终需要更改默认的enterMode。为了在表单中允许单行间隔文本,我将默认的ENTER_P值更改为ENTER_BR:

enterMode:CKEDITOR.ENTER_BR

在我这样做之后,问题消失了,因为不再有一个段落将光标移动到末尾。我会接受...... ;-)