我将自己的自定义文件选择器与TinyMCE 4的新file_picker_callback函数一起使用。关于此的文档不是很好,所以值得称赞的是弗雷德让我走了这么远-https://stackoverflow.com/a/24571800/2460995
自定义文件选择器正在运行,当您单击图像时,它会填充“源”以及“尺寸”。我只是想知道是否还有任何一种方法可以自动填写“图像描述”字段。
图像的信息是从数据库表中生成的,因此我已经有了描述,为用户自动填写它会很好。在尝试了将数据传回的各种方法之后,我努力了解如何完成数据。
TinyMCE的代码:
tinymce.init({
...
file_picker_callback: function(callback, value, meta) {
myImagePicker(callback, value, meta);
}
});
function myImagePicker(callback, value, meta) {
tinymce.activeEditor.windowManager.open({
title: 'Image Browser',
url: '/media/browser/1?type=' + meta.filetype,
width: 800,
height: 550,
}, {
oninsert: function (url) {
callback(url);
}
});
};
自定义文件选择器的代码:
$(function(){
$('.img').on('click', function(event){
mySubmit('/upload/' + $(this).data('filename'));
});
});
function mySubmit(url) {
top.tinymce.activeEditor.windowManager.getParams().oninsert(url);
top.tinymce.activeEditor.windowManager.close();
}
我的Java语言知识不是最高的知识,因为我还很陌生,所以如果您可以用示例和/或清晰的逻辑来说明任何答案,那将非常有用并非常感谢。
最佳答案
我遇到了同样的问题,并提出了以下解决方案:
myImagePicker
函数更新为(请注意objVals
函数的新oninsert
参数):function myImagePicker(callback, value, meta) {
tinymce.activeEditor.windowManager.open({
title: 'Image Browser',
url: '/media/browser/1?type=' + meta.filetype,
width: 800,
height: 550,
}, {
oninsert: function (url, objVals) {
callback(url, objVals);
}
});
};
mySubmit
函数更新为(请注意传递给objVals
的oninsert
参数):function mySubmit (url, objVals) {
top.tinymce.activeEditor.windowManager.getParams().oninsert(url, objVals);
top.tinymce.activeEditor.windowManager.close();
return false;
}
mySubmit
的位置以填写objVals
对象。例如:
mySubmit("https://google.com", { text: "Go To Google", target: '_blank' });
objVals
的填充属性根据调用对话框的类型而变化,并且已(部分地)记录在here中。对于链接对话框:
mySubmit("https://google.com", { text: "Go To Google", target: '_blank' });
对于图像对话框:
mySubmit("image.jpg", { alt: "My image" });
对于媒体对话框:
mySubmit("movie.mp4", {source2: 'movie-alt.ogg', poster: 'movie-image.jpg'});