Плагин CKEditor - Ошибка разрешения кнопки ОК - PullRequest
2 голосов
/ 03 декабря 2010

Привет, я создал следующий плагин ckeditor для вставки видео на YouTube:

(function() {
    CKEDITOR.plugins.add('youtube', {
        requires : ['iframedialog'],
        init : function(editor) {
            var iframeWindow = null;
            CKEDITOR.dialog.add('youtube_dialog', function() {
                return {
                    title : 'YouTube Movie Properties',
                    minWidth : 550,
                    minHeight : 200,
                    contents : [{
                        id : 'iframe',
                        label : 'Insert YouTube Movie',
                        expand : true,
                        elements : [{
                            type : 'iframe',
                            src : me.path + 'dialogs/youtube.html',
                            width : '100%',
                            height : '100%',
                            onContentLoad : function() {
                                iframeWindow = document.getElementById(this._.frameId).contentWindow;
                            }
                        }]
                    }],
                    onOk : function() {
                        this._.editor.insertHtml('<cke:youtube url="' + iframeWindow.document.getElementById('url').value + '">YouTube Video Place Marker</cke:youtube>');
                    }
                };
            });
            editor.addCommand('youtube', new CKEDITOR.dialogCommand('youtube_dialog'));
            editor.ui.addButton('YouTube', {
                label : 'Insert YouTube Movie',
                command : 'youtube',
                icon : this.path + 'images/icon.gif'
            });
        }
    });
})();

Это работало нормально, но я недавно переместил свои файлы ckeditor в CDN.Теперь, когда я нажимаю кнопку «ОК», я получаю ошибку разрешения.Я искал источник существующих плагинов, чтобы понять, как они работают, но все, что я пробовал, похоже, не работает.Чтобы получить что-то базовое, я попытался изменить свое событие okOk на:

onOk : function() {
    var hr = new CKEDITOR.dom.element('hr', editor.document );
    editor.insertElement(hr);
}

Но это дало мне исключение нулевой ссылки.

Я был бы очень признателен, если бы кто-то мог показать мне, чтоя делаю неправильноСпасибо

1 Ответ

1 голос
/ 10 декабря 2010

Проблема исправлена!Решением является изменение:

CKEDITOR.dialog.add('youtube_dialog', function()

на:

CKEDITOR.dialog.add('youtube_dialog', function(editor)

и изменение:

this._.editor

на:

editor

Надеждаэто помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...