Я пытаюсь настроить CKEditor так, чтобы он мог напрямую вставлять видео YouTube ... Я видел, что есть proposed patch, но я хочу сохранить исходный дистрибутив CKEditor, так что мне было интересно если во время выполнения можно использовать «обезьянную патч» CKEditor, чтобы, если пользователь вводит URL-адрес YouTube в диалоговом окне Flash, URL-адрес преобразуется, чтобы разрешить встраивание.Monkey patching CKEditor для встраивания видео YouTube
Я попытался это:
CKEDITOR.on('dialogDefinition', function(ev){
if (dialogName == 'flash'){
var infotab = dialogDefinition.getContents('info');
var f = dialogDefinition.onOk;
dialogDefinition.onOk = function(ev) {
var cur = this.getContentElement('info', 'src').getValue();
var newurl = cur.replace('youtube.com/watch?v=', 'youtube.com/v/');
if (cur != newurl) {
this.getContentElement('info', 'src').setValue(newurl);
};
f(ev);
}
}
}
, но он не будет работать, так как внутри f
код использует this
, и мой «заплаты» меняет его ...
f.apply (это, [эв]) работает в Firefox и IE, большое спасибо :) – Joril
Кроме того, я должен добавить перед, если строка: вар dialogName = ev.data.name; \t var dialogDefinition = ev.data.definition; – rhu