ckeditor似乎对元素进行了重新排序

时间:2019-02-18 16:36:24

标签: javascript ckeditor

插入CKEditor 4时,似乎在重新排列元素。

例如,我将内容放入警报中以查看内容,这是它的外观:

<div class="youtube-embed-wrapper" data-video-url="https://www.youtube-nocookie.com/embed/EG05-Y_C4EU?rel=0" data-video-preview="/cache/youtube_thumbs/1b6e910f6416a7c24e151551dc4ef844.jpg" style="position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden"><iframe width="640" height="360" src="https://www.youtube-nocookie.com/embed/EG05-Y_C4EU?rel=0" style="position:absolute;top:0;left:0;width:100%;height:100%"frameborder="0" allowfullscreen></iframe></div>

但是实际上插入时,它的最终结果是这样的:

<div class="youtube-embed-wrapper" data-video-preview="/cache/youtube_thumbs/1b6e910f6416a7c24e151551dc4ef844.jpg" data-video-url="https://www.youtube-nocookie.com/embed/EG05-Y_C4EU?rel=0" style="position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden"><iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube-nocookie.com/embed/EG05-Y_C4EU?rel=0" style="position:absolute;top:0;left:0;width:100%;height:100%" width="640"></iframe></div>

您可以看到data-video-url和data-video-preview标签已交换,我不知道为什么。

插入时,它使用标准的CKEditor函数(其中“内容”是上面第一个引用的代码):

var element = CKEDITOR.dom.element.createFromHtml(content);
var instance = this.getParentEditor();
instance.insertElement(element);

其他任何人以前都看过吗?我尝试搜索,但找不到任何内容。

1 个答案:

答案 0 :(得分:1)

要禁用对HTML属性的排序,请使用:

CKEDITOR.on( 'instanceReady', function( ev ) {
    ev.editor.dataProcessor.writer.sortAttributes = 0;
});

来源:https://stackoverflow.com/a/41202438/1911755