Laravel 5 TinyMce不';不要调用音频模板回调,而是调用视频模板回调
我将TinyMce编辑器与laravel 5.6和laravel elfinder一起使用。我必须上传音频文件,但编辑器无法识别音频文件,所以它通过调用video\u template\u callback以视频格式呈现。因此,我更改编辑器配置,如下所示: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
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