使用tinymce富文本编辑实现上传图片功能:
第一步:使用jquery.form.js插件;
自己去百度下载这个插件。
第二步:在angular2的目录中引入,如何引入:
在assets中建一个js文件夹,将jquery.form.js引入,
然后到.angular-cli.json 中添加代码
"scripts": [
"../node_modules/jquery/dist/jquery.min.js","../src/assets/js/jquery.form.js"
],
将jquery.form.js插件引入。
第三步:
tinymce.init({
selector: '#post_editor',skin_url: '/assets/skins/lightgray',convert_urls: false,//menubar:false,// 'advlist autolink lists link image charmap print preview hr anchor pagebreak',// 'searchreplace wordcount visualblocks visualchars code fullscreen',// 'insertdatetime media nonbreaking save table contextmenu directionality',// 'emoticons template paste textcolor colorpicker textpattern imagetools codesample'
plugins: [
'advlist autolink lists link imageupload charmap preview hr anchor pagebreak','searchreplace wordcount visualblocks visualchars code fullscreen','insertdatetime nonbreaking save table contextmenu directionality','emoticons template paste textcolor colorpicker textpattern codesample'
],toolbar1: 'insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link imageupload',toolbar2: 'print preview media | forecolor backcolor emoticons | codesample',imageupload_url: 'http://rapapi.org/mockjsdata/20823/upload/images',//image_advtab: true,codesample_content_css: '/assets/css/prism.css',//文件和图片上传相关的选项
file_browser_callback_types: 'image',file_browser_callback: function (field_name,url,type,win) {
console.log(type);
console.log(type == 'image');
if (type == 'image') {
let event = new MouseEvent('click',{
'view': window,'bubbles': true,'cancelable': true
});
let fileInput = document.getElementById('img_input');
fileInput.dispatchEvent(event);
}
},setup: editor => {
// editor.setContent("12345");
this.editor = editor;
editor.on('blur',() => {
this.tinymceContent.left = editor.getContent();
this.RichTextGoOut.emit(this.tinymceContent);
// this.content = editor.getContent();
});
editor.addButton('mybutton',{
text: '上传图片',icon: false,onclick: function () {
$("input[name='upload-img']").click();
}
})
}
});
}
在plugins添加插件功能 imageupload,在toolbar1中添加imageupload,
imageupload_url: 'http://rapapi.org/mockjsdata/20823/upload/images',
在最后添加editor.addButton等内容。
第三步:上传之后后端会返回展示的image 的url,到node_modules/tinymce/plugins/imageupload/plugin.min.js中修改img的src.
var submitUpload = function(){
$('#uploadImageForm').ajaxSubmit({
dataType: 'json',success: function(response){
console.log(response)
var tpl = '<img src="https://avatars1.githubusercontent.com/u/26200899?v=3&s=40" />';
ed.insertContent(tpl.replace('%s',response.path));
ed.focus();
removeForeground();
removeBackground();
},error: function(){
showImageUploadError('上传错误:2');
}
});
}
完美解决图片上传功能,动态显示在了框内。
还有一个:tinymce需要升级到4.5.6版本才能用
还看不懂就去看我的代码吧:
https://git.oschina.net/kaykie/unique