消防ckeditor嵌入插件并传递URL和必需的参数

时间:2018-10-29 07:29:05

标签: javascript plugins ckeditor embed

我想在某些操作上手动触发ckeditor embed插件(https://ckeditor.com/cke4/addon/embed)。例如,使用输入按钮从用户获得的URL,然后将此URL传递给embed插件,以便它可以将其嵌入到我的ckeditor实例中。

我从此链接CKEditor: call a plugin function without toolbar button获得了一些帮助,并使用CKEDITOR.instances ['editable']。execCommand('YOUR_PLUGIN_NAME_HERE');这将打开嵌入对话框,但我需要触发此插件。因此用户输入的网址将被嵌入到我的ckeditor中。

我还使用了editor.fire('YOUR_PLUGIN_NAME_HERE',data)方法,但不知道要传递什么数据。

感谢我的前进

1 个答案:

答案 0 :(得分:0)

为什么不将正确的窗口小部件HTML插入CKEditor?插入HTML时,将checkWidgets方法重新初始化小部件gets fired automatically。如果由于某种原因它对您不起作用,则可以手动触发该方法。

您输入的示例代码(取决于您使用的插件)如下所示:

var editor = CKEDITOR.instances.editor1;
editor.focus();

// Embed Semantic
// editor.insertHtml('<oembed>https://www.youtube.com/watch?v=Ue6KrclRvY8</oembed>');

// Embed
CKEDITOR.instances.editor1.insertHtml('<div data-oembed-url="https://www.youtube.com/watch?v=lMNRQix_QzQ"><div style="height:0; left:0; padding-bottom:56.2493%; position:relative; width:100%"><iframe allowfullscreen="" scrolling="no" src="https://www.youtube.com/embed/lMNRQix_QzQ?rel=0&amp;showinfo=0" style="border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;" tabindex="-1"></iframe></div>');

// This code should only be fired in cases where inserting HTML doesn't work fire
// checkWidgets method however it should not really happen
/*setTimeout( function(){
    editor.widgets.checkWidgets();
} ,0 );*/