Глядя на код плагина для видео, мы видим, что он просто вставляет видео через iframe L49 в videodetector-master / dialogs / videoDialog. js:
var iframe = new CKEDITOR.dom.element('iframe');
iframe.setAttribute('src', url);
iframe.setAttribute('frameborder', '0');
p.append(iframe);
Проблема возникает из-за плагин bbcode
, так как он не поддерживает тег iframe
, созданный плагином видео, поэтому он дает сбой при попытке перевести видео iframe в тег bbcode.
Проверяя код плагина, мы видим, что легко добавить поддержку тега iframe
:
Файл плагина: bbcode / plugin. js Добавьте тег iframe в L29:
var bbcodeMap = { iframe: 'span', b: 'strong', u: 'u', /* rest of tags here */}
Добавьте проверку для специальной обработки (такой же, как тег img
) в L164:
if ( part == 'email' || part == 'img' || part == 'iframe' )
Добавьте изменение, необходимое для предварительного просмотра (с bbcode на html) в L618:
} else if ( bbcode == 'iframe' ) {
element.name = 'iframe';
element.attributes.src = element.children[ 0 ].value;
element.children = [];
}
Добавьте изменение, необходимое для вывода (с html на bbcode) в L730:
} else if ( tagName == 'iframe' ) {
element.isEmpty = 0;
var src = attributes.src;
element.children = [ new CKEDITOR.htmlParser.text( src ) ];
}
Вот демонстрационная скрипка: https://jsfiddle.net/s17mjwdz/