ツールバー ボタンなしでプラグイン関数を呼び出すにはどうすればよいですか?
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!' );
}
結果は次のとおりです。
キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にメソッド 'embedCode' がありません
「InsertHTML」のような新しい API を作成して、ツールバー ボタンなしでプラグイン関数を呼び出す方法はありますか?
編集
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 );
}