当前位置:   article > 正文

vue3 中 tinymce+tinymce-vue 富文本编辑器使用_富文本插件tinymce-vue

富文本插件tinymce-vue

1.安装插件

  • npm 安装
  • npm install --save "@tinymce/tinymce-vue@^4"

  • yarn 安装
  • yarn add  "@tinymce/tinymce-vue@^4"

  • npmp 安装
  • pnpm  add  "@tinymce/tinymce-vue@^4"

2.再然后把node_modules/tinymce下的skins 文件夹复制到public文件夹下

3.下载中文语言包

TinyMCE中文文档中文手册

  • 把解压后的语言包,也放到 public文件夹下面;

4.富文本组件引入使用

  1. <template>
  2. <div class="app-container">
  3. <h1>tinymce</h1>
  4. <editor id="tinymce" v-model="tinymceHtml" :init="init"></editor>
  5. <div v-html="tinymceHtml"></div>
  6. </div>
  7. </template>
  8. <script setup>
  9. import { ref, onMounted } from "vue";
  10. import tinymce from "tinymce/tinymce";
  11. import "tinymce/models/dom"; // 特别注意 tinymce 6.0.0 版本之后必须引入,否则不显示
  12. import "tinymce/themes/silver/theme";
  13. import Editor from "@tinymce/tinymce-vue"; // 引入组件
  14. // 都是富文本插件
  15. import "tinymce/icons/default";
  16. import "tinymce/plugins/image";
  17. import "tinymce/plugins/link";
  18. import "tinymce/plugins/code";
  19. import "tinymce/plugins/table";
  20. import "tinymce/plugins/lists";
  21. import "tinymce/plugins/wordcount";
  22. // 以上所有的样式在 node_modules 下面 tinymce 里面的 plugins 都能找到。
  23. const tinymceHtml = ref("请输入内容");
  24. const init = {
  25. //初始化数据
  26. language_url: "/langs/zh-Hans.js", // 引入语言包(该语言包在public下,注意文件名称)
  27. language: "zh-Hans", // 这里名称根据 zh-Hans.js 里面写的名称而定
  28. skin_url: "/skins/ui/oxide", // 这里引入的样式
  29. height: 300, // 限制高度
  30. plugins: "link lists image code table wordcount", // 富文本插件
  31. toolbar:
  32. "bold italic underline strikethrough | fontsizeselect | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent blockquote | undo redo | link unlink image code | removeformat",
  33. branding: false, // //是否禁用“Powered by TinyMCE”
  34. menubar: true, //顶部菜单栏显示
  35. // paste_convert_word_fake_lists: false, // 插入word文档需要该属性
  36. content_css: "/skins/content/default/content.css", //以css文件方式自定义可编辑区域的css样式,css文件需自己创建并引入
  37. images_upload_handler: (blobInfo) =>
  38. new Promise((resolve, reject) => {
  39. // console.log(blobInfo.blob());
  40. // 上传图片需要,FormData 格式的文件;
  41. const formDataUp = new FormData();
  42. // img 是接口需要的上传的属性名,一般属性名是 file
  43. formDataUp.append("img", blobInfo.blob());
  44. // // console.log(formDataUp);
  45. axios.post("xxxx", formDataUp).then((res) => {
  46. resolve("返回的上传图片后的地址");
  47. });
  48. }),
  49. };
  50. onMounted(() => {
  51. tinymce.init({}); // 初始化富文本
  52. });
  53. </script>

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

闽ICP备14008679号