当前位置:   article > 正文

vue引入tinymce_tinymce no-api-key

tinymce no-api-key

官方文档

Using the TinyMCE .zip package with the Vue.js framework | TinyMCE Documentation

其实官方也就两步

1.安装Vue CLI 工具

npm install -g @vue/cli

2.引入

npm install --save "@tinymce/tinymce-vue@^3"

这里我是vue2所以是这个文档中是这样的

3.页面引入新增一个vue页面 test.vue

  1. <template>
  2. <div id="app">
  3. <img alt="Vue logo" src="./assets/logo.png">
  4. <editor
  5. api-key="no-api-key"
  6. :init="{
  7. plugins: 'lists link image table code help wordcount'
  8. }"
  9. />
  10. </div>
  11. </template>
  12. <script>
  13. import Editor from '@tinymce/tinymce-vue'
  14. export default {
  15. name: 'app',
  16. components: {
  17. 'editor': Editor
  18. }
  19. }
  20. </script>

4.实现效果,剩下估计要配置什么上传图片等功能了

5.解决烦人的弹窗问题

Self Hosted WYSIWYG HTML Editor | Trusted Rich Text Editor | TinyMCE

下载最新的版本把其中的

拷到无需打包的目录下

并在index.html中引入,凡人的弹窗就莫得了

6.汉化中文包下载地址,进去搜索chinese即可

Language Packages | Trusted Rich Text Editor | TinyMCE

下载完将js文件解压到之前的文件夹的lang下

设置init参数

7.添加图片上传功能

官方文档地址

Image and file options | TinyMCE Documentation


 

 修改options属性,在官方文档上自己抄下吧 太长了 忍一下

 

当然这里的图片不晓得传哪里去了需要配置在上边的options中添加一个url

images_upload_url: 'sys/upload/img'

上传的对象为file,后端如下

因为我这边上传端口其他也有用到,所以文件名为upfile怎么改呢,官网也有例子

 

一般是直接放在文件的这里即可,但是我的url每次都要this.$http.addUrl()来拼接后端地址,但是this并不能在const对象中被使用,所以后面改改成放在method,并且修改读取返回数据的时候也添加地址

  1. methods: {
  2. example_image_upload_handler (blobInfo, progress) {
  3. return new Promise((resolve, reject) => {
  4. const xhr = new XMLHttpRequest()
  5. xhr.withCredentials = false
  6. xhr.open('POST', this.$http.adornUrl('/sys/upload/img'))
  7. xhr.upload.onprogress = e => {
  8. progress(e.loaded / e.total * 100)
  9. }
  10. xhr.onload = () => {
  11. if (xhr.status === 403) {
  12. reject({ message: 'HTTP Error: ' + xhr.status, remove: true })
  13. return
  14. }
  15. if (xhr.status < 200 || xhr.status >= 300) {
  16. reject('HTTP Error: ' + xhr.status)
  17. return
  18. }
  19. const json = JSON.parse(xhr.responseText)
  20. if (!json || typeof json.msg !== 'string') {
  21. reject('Invalid JSON: ' + xhr.responseText)
  22. return
  23. }
  24. resolve(this.$http.adornUrl(json.msg))
  25. }
  26. xhr.onerror = () => {
  27. reject('Image upload failed due to a XHR Transport error. Code: ' + xhr.status)
  28. }
  29. const formData = new FormData()
  30. formData.append('upfile', blobInfo.blob(), blobInfo.filename())
  31. xhr.send(formData)
  32. })
  33. },
  34. },

还有需要在options中添加

images_upload_handler: this.example_image_upload_handler,

样例如下视频

QQ录屏20220511143949

最后添加保存和清空按钮

 

 

  1. <div class="btn-div">
  2. <el-button size="mini" @click="submit">保存</el-button>
  3. <el-button type="danger" size="mini" @click="clear">清空</el-button>
  4. </div>
  1. submit () {
  2. if (!this.$listeners['submit']) {
  3. this.$message.error('没有传入组件方法submit')
  4. return
  5. }
  6. this.$emit('submit', this.myValue)
  7. },
  8. clear () {
  9. this.myValue = ''
  10. },

 父组件调用

最后是整个测试文件

tinymce-editor测试vue-Javascript文档类资源-CSDN下载

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/733911
推荐阅读
相关标签