Laravel 5 TinyMce不';不要调用音频模板回调,而是调用视频模板回调

Laravel 5 TinyMce不';不要调用音频模板回调,而是调用视频模板回调,laravel-5,tinymce,tinymce-4,Laravel 5,Tinymce,Tinymce 4,我将TinyMce编辑器与laravel 5.6和laravel elfinder一起使用。我必须上传音频文件,但编辑器无法识别音频文件,所以它通过调用video\u template\u callback以视频格式呈现。因此,我更改编辑器配置,如下所示: var editor_config = { selector: "textarea", plugins: [ "image link lists textcolor im

我将TinyMce编辑器与laravel 5.6和laravel elfinder一起使用。我必须上传音频文件,但编辑器无法识别音频文件,所以它通过调用video\u template\u callback以视频格式呈现。因此,我更改编辑器配置,如下所示:

var editor_config = {
            selector: "textarea",
            plugins: [
            "image link lists textcolor imagetools table codesample textpattern media code"
            ], 
            video_template_callback: function(data){
                console.log('call video');
                return '<audio controls>' + '\n<source src="' + data.source1 + '"' + (data.source1mime ? ' type="' + data.source1mime + '"' : '') + ' />\n' + '</audio>';
            },
            audio_template_callback: function(data) {
                console.log('call audio');
                return '<audio controls>' + '\n<source src="' + data.source1 + '"' + (data.source1mime ? ' type="' + data.source1mime + '"' : '') + ' />\n' + '</audio>';
            },
            toolbar: "insertfile undo redo | styleselect | bold italic strikethrough | alignleft aligncenter alignright alignjustify | ltr rtl | bullist numlist outdent indent removeformat formatselect| link image media | emoticons charmap | code codesample | forecolor backcolor",
            browser_spellcheck: true,
            relative_urls: false,
            remove_script_host: false,
            media_poster: false,
            media_filter_html: false,
            file_browser_callback : function(field_name, url, type, win) {

                tinymce.activeEditor.windowManager.open({
                    file: '<?= route('elfinder.tinymce4') ?>',// use an absolute path!
                    title: 'File Manager',
                    width: 900,
                    height: 450,
                    resizable: 'yes'
                }, {
                    setUrl: function (url) {
                    win.document.getElementById(field_name).value = url;
                    }
                });
            },
            setup:function(ed) {
                ed.on('change', function(e) {
                    console.log('the content ', ed.getContent({ format: 'text' }));
                });
            }
        };
    [![tinymce.init(editor_config);][1]][1]
var编辑器\u配置={
选择器:“文本区域”,
插件:[
“图像链接列出文本颜色图像工具表代码示例文本模式媒体代码”
], 
视频模板回调:函数(数据){
log(“呼叫视频”);
返回“+”\n\n“+”;
},
音频模板回调:函数(数据){
console.log('callaudio');
返回“+”\n\n“+”;
},
工具栏:“insertfile undo redo | styleselect |粗体斜体删除线| alignleft aligncenter alignright alignjustify | ltr rtl | bullist numlist outdent indent removeformat选择|链接图像媒体|表情符号|代码示例|前景色背景色”,
浏览器拼写检查:true,
相对URL:false,
删除\u脚本\u主机:false,
媒体海报:假,
媒体过滤器html:false,
文件\浏览器\回调:函数(字段\名称、url、类型、win){
tinymce.activeEditor.windowManager.open({
文件:“”,//使用绝对路径!
标题:“文件管理器”,
宽度:900,
身高:450,
可调整大小:“是”
}, {
setUrl:函数(url){
win.document.getElementById(字段名称).value=url;
}
});
},
设置:功能(ed){
教育署署长(‘更改’,职能(e){
log('content',ed.getContent({format:'text'}));
});
}
};
[![tinymce.init(编辑器配置);][1][1]

测试此设置时,控制台仅输出“呼叫视频”。

在当前版本的TinyMCE(4.8.1)中,如果查看媒体插件的代码,您会看到如下部分:

if (data.type === 'iframe') {
    return getIframeHtml(data);
} else if (data.source1mime === 'application/x-shockwave-flash') {
    return getFlashHtml(data);
} else if (data.source1mime.indexOf('audio') !== -1) {
    return getAudioHtml(data, audioTemplateCallback);
} else if (data.type === 'script') {
    return getScriptHtml(data);
} else {
    return getVideoHtml(data, videoTemplateCallback);
}
为了将某些内容作为音频触发,其mime类型需要包含字符串
Audio
。如果所有其他测试都失败,它将被视为视频,因此我猜测该文件上的mime类型不包括字符串
audio