如何将html元素放在Ckeditor中的光标位置?

use*_*282 5 javascript position cursor ckeditor inserthtml

我很难成功地将要拖放的html元素放入Ckeditor中。到目前为止,我刚刚能够使用“ setData”将其放置在内容的末尾。但我想将其放置在光标所在的位置。

我的意思是,而不是这样做:

<p>My content with <span>spans</span>, <a>links</a>, etc.</p><span>The html I am drag/droping</span>
Run Code Online (Sandbox Code Playgroud)

我想做这个 :

<p>My content with <span>spans</span>, <span>The html I am drag/droping</span>, <a>links</a>, etc.</p>
Run Code Online (Sandbox Code Playgroud)

现在,我的代码如下所示:

CKEDITOR.instances['myContent'].insertHtml(' <span>The html I am drag/droping</span>');
Run Code Online (Sandbox Code Playgroud)

我已经尝试过insertText,但从未成功。然后,我尝试了insertHtml,但它仅在IE o_O中有效。

您对如何解决有任何想法吗?那将是很大的帮助!谢谢。

hel*_*ork 0

使用 Ckeditor“粘贴”(删除)事件/方法而不是本机。

在你的插件 editor.on('instanceReady'... 假设 CKEditor 4.x

粘贴和放置由同一事件“粘贴”处理。Ckeditor 将 dataValue 的内容放置在编辑器中的光标位置。

editor.on('paste', function(e){
    // get data from e.data.dataTransfer or wherever ...
    e.data.dataValue = ' <span>The html I am drag/droping</span>';
});
Run Code Online (Sandbox Code Playgroud)