将原子内容插入CKEditor

Insert atomic content into CKEditor

本文关键字:插入 CKEditor      更新时间:2023-09-26

是否可以将"原子"块内容插入CKEditor?

例如,我想在<p>A B C</p>的"B"后面插入<h1>Test</h1>。当前使用CKEDITOR.currentInstance.insertHtml('<h1>Test</h1>')时,块标记将被删除,它将变为<p>A BTest C</p>(光标位于"B"之后)。我希望它插入到光标所在的P块的末尾,就像<p>A B C</p><h1>Test</h1> 一样

下面是一个工作示例http://jsfiddle.net/T49Pf/3/.如果插入符号位于第一段中的任何位置,并且我单击"插入",则不会插入h1标记。但是当插入符号在第二个(空)段落中时,我确实有h1块元素。现在,当我在任何地方单击"插入"时,内容都会插入到一个保持原子性的位置(不要丢失h1标记)。它类似于"魔术线"插件。

我假设您使用的是editor.insertHtml方法。此方法的行为是为处理粘贴的代码而设计的,您的情况通常意味着单行或部分行被复制,因此应将其作为文本处理,而不是作为格式处理。

在您的情况下,我建议使用editor.insertElement方法,它用于不同的目的(例如图像插入),这样它将保留您的元素。

文件样本:

var element = CKEDITOR.dom.element.createFromHtml( '<img src="hello.png" border="0" title="Hello" />' );
CKEDITOR.instances.editor1.insertElement( element );

头标记(h1-6)是块级元素,不能嵌套在<p>标记中。。。