我需要将elFinder集成到CKEditor。我遵循此:
https://github.com/Studio-42/elFinder/wiki/Integration-with-CKEditor
它正在工作,但是打开用于选择图像的弹出窗口不是很好,所以我想在模式对话框中打开elFinder。
对于“模式集成”,我遵循以下线程:
http://bxuulgygd9.tal.ki/20110728/integration-with-ckeditor-759177/
那里的最后一个帖子部分起作用。确实可以在模式中打开elfinder。但:
当我想将图像URL插入CKFinder中的URL字段时,我必须知道其确切ID。也无法填充图像分辨率并带来其他一些问题。最好的解决方案是运行在“普通弹出窗口”集成中调用的函数,该函数可以处理所有问题:
window.opener.CKEDITOR.tools.callFunction(funcNum, file);
但是在“弹出式集成”中,funcNum回调已注册,而在模式集成中则未注册,因此我无法调用它。您是否有任何提示可在模态窗口中运行elfinder(或任何其他图像管理器-相同)?我很绝望。
最佳答案
我自己解决了。该代码是几个教程的组合,可以将elFinder完全集成到模态窗口中。也许有人会认为它有用。
CKEDITOR.on('dialogDefinition', function(event) {
var editor = event.editor;
var dialogDefinition = event.data.definition;
console.log(event.editor);
var dialogName = event.data.name;
var tabCount = dialogDefinition.contents.length;
for (var i = 0; i < tabCount; i++) {
var browseButton = dialogDefinition.contents[i].get('browse');
if (browseButton !== null) {
browseButton.hidden = false;
browseButton.onClick = function(dialog, i) {
editor._.filebrowserSe = this;
jQuery('<div \>').dialog({modal: true, width: "80%", title: "Insert image", zIndex: 99999,
create: function(event, ui) {
jQuery(this).elfinder({
resizable: false,
url: "/path/to/connector.php",
getFileCallback: function(url) {
CKEDITOR.tools.callFunction(editor._.filebrowserFn, url);
jQuery('a.ui-dialog-titlebar-close[role="button"]').click()
}
}).elfinder('instance')
}
})
}
}
}
});
关于javascript - 模态对话框中的CKEditor和elFinder,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16466706/