nuxt tinymce 富文本navigator is not defined

前言

  • tinymce的时候会报navigator is not defined。
    在这里插入图片描述

解决方案

  • 关闭服务端渲染就能解决。
  • plugins目录新建tinymce.js,内容如下。
import Vue from "vue"
import tinymce from "tinymce/tinymce"
import Editor from '@tinymce/tinymce-vue'
Vue.prototype.$tinymce = tinymce
Vue.component("Editor", Editor)

  • nuxt.config.jsplugins增加
  {
      src: '@/plugins/tinymce',
      ssr: false,
    },
  • 界面这样写
  <textarea></textarea>
   mounted() {
        // window.tinymce.baseURL = window.location.origin + '/tinymce'
        this.$tinymce.init({
            selector: 'textarea',
            plugins: 'lists link image table code help wordcount image',
            toolbar: 'image',
            toolbar_mode: 'floating',
            tinycomments_mode: 'embedded',
            tinycomments_author: 'Author name',
        });
    }
  • 当然了,界面也可直接引入组件标签。
        <div>
            <Editor   :init="init" />
        </div>
...省略 部分JS ...
   data() {
        return {
            init: {
                language: 'zh-Hans',   // 这是语言包,可以在https://www.tiny.cloud/get-tiny/language-packages/ 下载
                language_url: '/language/tinymce/zh_CN.js', //下载后放到static目录
                plugins: 'lists link image table code help wordcount image',
                toolbar: 'image',
                images_upload_url: '/api/image/upload',
            }
        }
    },
  • 把node_modules里tinymce模块复制到static改名为_nuxt
    在这里插入图片描述

效果

在这里插入图片描述

css、js都会从本地加载

自定义本地资源加载的位置

  • 先有tinymce模块。
  window.tinymce.baseURL = window.location.origin + '/tinymce'
  • 我试了下这句写在tinymce.js也可以
import Vue from "vue"
import tinymce from "tinymce/tinymce"
import Editor from '@tinymce/tinymce-vue'
window.tinymce.baseURL = window.location.origin + '/_nuxt'
Vue.prototype.$tinymce = tinymce
Vue.component("Editor", Editor)

参考

posted on   愤怒的苹果ext  阅读(498)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示