【发布时间】:2017-03-08 20:01:18
【问题描述】:
如何在没有工具栏按钮的情况下调用插件函数?
我的 cms 中集成了一个外部浮动工具栏。我使用 CKEditor 的 InsertHTML() API 插入图像、视频和其他静态代码。
现在我还需要从 URL 插入视频,并且有很棒的 oembed 插件。如何在没有工具栏按钮的情况下使用我的 cms 中的按钮触发该插件?
我在我的配置中加载插件,并尝试创建这个函数:
function oembed() {
// Get the editor instance that we want to interact with.
var editor = CKEDITOR.instances.editor1;
var url = 'http://www.youtube.com/watch?v=AQmbsmT12SE'
var wrapperHtml = jQuery('<div />').append(editor.config.oembed_WrapperClass != null ? '<div class="' + editor.config.oembed_WrapperClass + '" />' : '<div />');
// Check the active editing mode.
if ( editor.mode == 'wysiwyg' )
{
// Insert HTML code.
// http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertHtml
editor.embedCode(url, editor, false, wrapperHtml, 650, 400, false);
}
else
alert( 'You must be in WYSIWYG mode!' );
}
结果是这样的:
Uncaught TypeError: Object [object Object] has no method 'embedCode'
有没有办法创建一个新的 API,比如“InsertHTML”来调用没有工具栏按钮的插件函数?
编辑
也许我可以使用 createFakeElement API。
http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-createFakeElement
我将 fakegallery 类添加到我的文档中。
我使用此代码,但没有任何反应:
function Fake()
{
var editor = CKEDITOR.instances.editor1;
var element = CKEDITOR.dom.element.createFromHtml( '<div class="bold"><b>Example</b></div>' );
alert( element.getOuterHtml() );
editor.createFakeElement( element, 'fakegallery', 'div', false );
}
【问题讨论】:
标签: javascript api ckeditor