博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在angular2中使用tinymce富文本编辑,并实现上传图片功能
阅读量:5759 次
发布时间:2019-06-18

本文共 3577 字,大约阅读时间需要 11 分钟。

  hot3.png

使用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 = '';                          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

 

 

 

转载于:https://my.oschina.net/kaykie/blog/1217722

你可能感兴趣的文章
如何提高还在用window系统的编码硬效率
查看>>
树莓派下实现ngrok自启动
查看>>
javascript静态类型检测工具—Flow
查看>>
MachineLearning-Sklearn——环境搭建
查看>>
node学习之路(二)—— Node.js 连接 MongoDB
查看>>
Goroutine是如何工作的?
查看>>
《深入理解java虚拟机》学习笔记系列——垃圾收集器&内存分配策略
查看>>
用grunt搭建自动化的web前端开发环境-完整教程
查看>>
研究人员发现:基于文本的AI模型容易受到改述攻击
查看>>
TriggerMesh开源用于多云环境的Knative Event Sources
查看>>
GitLab联合DigitalOcean为开源社区提供GitLab CI免费托管
查看>>
通过XAML Islands使Windows桌面应用程序现代化
查看>>
区块链现状:从谨慎和批判性思维看待它(第二部分)
查看>>
苹果公司透露Siri新发音引擎的内部原理
查看>>
GCM 3.0采用类似方式向Android、iOS和Chrome发送消息
查看>>
如何成为一家敏捷银行
查看>>
MongoDB主动撤回SSPL的开源许可申请
查看>>
Oracle在JavaOne上宣布Java EE 8将会延期至2017年底
查看>>
Javascript 深入浅出原型
查看>>
简单之极,搭建属于自己的Data Mining环境(Spark版本)
查看>>