TinyMCE4 file_picker_callback - 返回附加参数

Posted

技术标签:

【中文标题】TinyMCE4 file_picker_callback - 返回附加参数【英文标题】:TinyMCE4 file_picker_callback - return additional params 【发布时间】:2014-09-14 00:28:20 【问题描述】:

我正在使用我自己的自定义文件选择器和 TinyMCE 4 的新 file_picker_callback 函数。这方面的文档不是很好,所以感谢 Fred 让我走到了这一步 - https://***.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();

我的 javascript 知识还不是最丰富的,因为我对它很陌生,所以如果你能用示例和/或清晰的逻辑来说明任何答案,这将非常有用和非常感谢。

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,并想出了以下解决方案:

    将您的myImagePicker 函数更新为(注意oninsert 函数的新objVals 参数):

    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 函数更新为(注意传递给oninsertobjVals 参数):

    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');
    

【讨论】:

我几乎已经放弃了对此的希望,但在我发布 6 周后,一位名叫 Jason 的英雄出现并第一次做到了。这对我来说非常有效。非常感谢您抽出宝贵时间回复! @Lason S:在这种情况下,您应该接受答案

以上是关于TinyMCE4 file_picker_callback - 返回附加参数的主要内容,如果未能解决你的问题,请参考以下文章

vue项目中引入tinymce4

Tinymce4 中Ajax多次加载时,会出现菜单在第二次进入时,显示的下拉菜单在左上角

TinyMce 4 + ResponsiveFileManager 跨域:阻止了带有原点的帧

TinyMCE 4 无法输入提供的插件文本字段

tinymce 4:如何创建自己的文件管理器?

TinyMCE 4链接插件模式不可编辑