Javascript 停止CKEDITOR将以前的元素类复制到页面上的每个新元素中
默认情况下,当您按下enter键时,光标所在的任何元素都将使用所有相同的属性进行复制。如果在CKEDITOR配置文件中设置“forceEnterMode:true”,则可以强制CKEDITOR不复制元素,而是在每次点击enter()时使用默认元素,但不幸的是,这些类仍然被复制到这个新元素中 换句话说,如果ckeditor中的代码是:Javascript 停止CKEDITOR将以前的元素类复制到页面上的每个新元素中,javascript,html,ckeditor,wysiwyg,Javascript,Html,Ckeditor,Wysiwyg,默认情况下,当您按下enter键时,光标所在的任何元素都将使用所有相同的属性进行复制。如果在CKEDITOR配置文件中设置“forceEnterMode:true”,则可以强制CKEDITOR不复制元素,而是在每次点击enter()时使用默认元素,但不幸的是,这些类仍然被复制到这个新元素中 换句话说,如果ckeditor中的代码是: <div class="text">{{cursor here}}</div> {{cursor here} 然后按两次enter键。您
<div class="text">{{cursor here}}</div>
{{cursor here}
然后按两次enter键。您将获得:
<div class="text"></div>
<div class="text">{{cursor here}}</div>
<div class="text"></div>
<div class="text"></div>
<p class="text">{{cursor here}}</p>
{{cursor here}}
然后设置forceEnterMode:true,然后按enter键,您将得到:
<div class="text"></div>
<div class="text">{{cursor here}}</div>
<div class="text"></div>
<div class="text"></div>
<p class="text">{{cursor here}}</p>
{{cursor here}
我不确定在什么情况下,你会希望你以前的elements类被复制到以后的每一个元素中,因为你把页面隔开了,但我肯定不想要这个功能。我希望结果是:
<div class="text"></div>
<p></p>
如何在每次按enter键时强制CKEDITOR停止将以前的元素属性复制到页面的每个新元素中
下面是JSFIDLE:简短的回答是,您不能强制CKEDITOR停止复制前面的元素属性 如果仔细阅读enterkey插件,您将看到前面的节点包含所有属性、内联样式和类(只有id被删除),然后插入到它的或中。blockquote、li和pre标记除外 这完全有道理,因为通常我们希望在创建新段落时(就像在任何其他编辑器中一样)继续使用所选样式和事件键入
如果这种行为仍然令人讨厌,您可以手动使用它强制块之间或所选块中的换行。在编辑器上收听“enter”事件,然后获取元素并执行所需操作。下面的代码从按下enter键时创建的新div中删除了数据元素属性。这个答案有点晚了,但它仍然可能对某人有所帮助:)