CKEditor:粘贴到widget中的可编辑字段

时间:2016-03-30 14:51:36

标签: ckeditor ckeditor4.x

我有一个类似于标签模块的CKEditor小部件。 作为可编辑的内容,我定义了<ul class="list1"> <li><a href="#">List item 1</a></li> <li><a href="#">List item 2</a></li> <li class="slicknav_parent"><a href="#">List item 3</a> <ul> <li><a href="#">Child Item 1</a></li> <li><a href="#">Child Item 2</a></li> <li><a href="#">Child Item 3</a></li> <li><a href="#">Child Item 4</a></li> </ul> </li> <li><a href="#">List item 4</a></li> </ul> span.title

当我在div.content内处于编辑模式然后使用CTRL + V粘贴某些内容时,跨度会被破坏,我有两个跨度。就像它粘贴在我粘贴的任何位置一样。

当我在span.title内处于编辑模式,然后使用CTRL + V粘贴某些内容时,剪贴板的内容会正确插入到该div中。

是因为span是内联元素而div是块元素而CKEditor不允许粘贴到内联元素中吗? 我可以以某种方式改变这种行为吗?

2 个答案:

答案 0 :(得分:1)

CKEditor允许粘贴块和内联元素(请记住,content filtering (ACF)可以使用,这也会影响粘贴)所以在这种情况下可能不是问题。

我还要确保您尝试粘贴的内容不包含任何可能导致您描述的行为的HTML。

如果您可以提供正在使用的小部件HTML /模板或代码,我将很乐意更深入地研究此问题。

答案 1 :(得分:0)

尝试将<cite>元素作为可编辑元素时遇到了这个问题。技巧是调整CKEDITOR.dtd属性。

// This prevents the pasting from splitting parent element.
delete CKEDITOR.dtd.$removeEmpty.cite;
// This tells the editor to allow editing in this element.
CKEDITOR.dtd.$editable.cite = 1;

我想这会影响当前加载的任何编辑器中所有<cite>元素的行为。对于大多数元素而言,并非在所有情况下都不理想,但是对于我们对blockquote / pullquote小部件的要求而言,<cite>元素仅允许在任何编辑器的<blockquote>元素内使用。