我正在尝试配置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
,而我的“补丁”更改了它。。。