我正在尝试配置 CKEditor 以便它可以直接嵌入 YouTube 视频......我看到有一个提议的补丁,但我想保持原来的 CKEditor 发行版不变,所以我想知道是否可以“猴子补丁”CKEditor在运行时,如果用户在 Flash 对话框中键入 YouTube URL,则 URL 会被转换为允许嵌入。
我试过这个:
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
,并且我的“补丁”改变了它......