在CKEditor
我试图阻止从html标记移除id
属性,例如:
<p id='hello'>Hello</p>
但是ckeditor的这种配置不起作用,我找不到关于这个问题的任何其他解决方案
<script>
$(function () {
CKEDITOR.replace('description', {
allowedContent: true,
autoGrow_onStartup: true,
extraAllowedContent: '*[id]',
});
});
</script>
你可以帮我解决这个问题吗?
答案 0 :(得分:0)
首先使用allowedContent: true
和extraAllowedContent: '*[id]'
毫无意义。第一个选项禁用ACF允许所有内容,而第二个选项扩展它。如果已经允许所有内容,则允许额外内容是没有意义的。您应该使用这两个选项中的一个,具体取决于您是否要打开ACF。
将<p id='hello'>Hello</p>
之类的HTML粘贴到源模式,然后切换到wysiwyg并返回源代码会保持id
属性不变(也与当前配置一致),您将得不到相同的结果复制/粘贴此类元素时。请记住,根据HTML规范,id
属性必须是唯一的,因此您不能在编辑器内容区域(文档)中拥有一堆<p id='hello'>Hello</p>
。在这种情况下,编辑器会自动删除id
属性,使其不会重复,并且无法禁用它。
如果您想基于相同的id
识别元素,那么我宁愿建议使用data-*
属性或CSS类(在复制/粘贴期间不会删除它们)。如果您的要求是每个元素都应该有id
,那么您可以使用paste事件处理程序,您只需检查粘贴数据中的元素是否具有id
属性,并添加一些随机值,如果它没有。