TinyMCE 在插入内容后自动复制代码

TinyMCE replicates code automatically after insert content

spanclass="foo" 中插入动态嵌入的图像后,每个下一行在 class.

中具有相同的跨度
// ...
const eg = '<span class="image"><img src="' + data.url + '"></span>';
ed.execCommand('insertHTML', false, eg); // or setContent or whatever I use

在那之后,如果我按回车键,我会一次又一次地得到这个:

<p><span class="image"></span></p>

问题:有什么办法可以避免这种行为吗?

示例:http://jsfiddle.net/rnv4q39f/

最后我可以通过设置选项中的这个解决方法来完成它:

ed.on('keydown', ev => {
    if (ev.keyCode === 13) {
        if (ed.dom.hasClass(ed.selection.getNode(), 'image')) {
            ed.execCommand('mceInsertContent', false, '<p>&nbsp;</p>');
            return false;
        }
        else return true;
    }
});

我从这个问题中提取了同样的问题(我今天发现):。区别在于使用

ed.selection.setContent('<p>&nbsp;</p>');

编辑器保留 非中断 space,但使用

ed.execCommand('mceInsertContent', false, '<p>&nbsp;</p>');

没有。