CKEditor阻止删除id属性

时间:2018-05-28 09:47:57

标签: javascript php ckeditor

CKEditor我试图阻止从html标记移除id属性,例如:

<p id='hello'>Hello</p>

但是ckeditor的这种配置不起作用,我找不到关于这个问题的任何其他解决方案

<script>
    $(function () {
        CKEDITOR.replace('description', {
            allowedContent: true,
            autoGrow_onStartup: true,
            extraAllowedContent: '*[id]',
        });
    });
</script>
你可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

首先使用allowedContent: trueextraAllowedContent: '*[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属性,并添加一些随机值,如果它没有。