【问题标题】:How to insert content inside tinymce editor using vue js?如何使用 vue js 在 tinymce 编辑器中插入内容?
【发布时间】:2020-07-04 06:51:25
【问题描述】:

我想使用 vue js 模板中的按钮在 tinymce 编辑器中插入像 <span class="some-class">text</span> 这样的内容。我怎样才能使用tinymce-vue 包装器来实现这一点? 代码如下:

<template>
  <tinymce-editor
    api-key="my-api-key-here"
  />
  <button @click="addContent">button</button>
</template>

import Editor from '@tinymce/tinymce-vue'

export default {
  components: {
    tinymceEditor: Editor
  },
  methods: {
    addContent () {
      tinymce.activeEditor.setContent('<span class="some-class">text</span>');
    }
  }
}

编辑:

我还使用npm i tinymce --save 安装了tinymce,并将导入import tinymce from 'tinymce/tinymce 添加到上面的代码中。现在我不再收到错误'tinymce' is not defined,但编辑器也没有出现。

【问题讨论】:

    标签: vue.js tinymce


    【解决方案1】:

    如果你想在 vue 中使用 tinymce 和 typscritt 来设置你的内容并避免未定义的错误,你需要将 tinyMCE 导入为

    import { getTinymce } from '@tinymce/tinymce-vue/lib/cjs/main/ts/TinyMCE';
    

    然后你就可以设置你的内容了

     getTinymce().activeEditor.setContent('coucou');
    

    【讨论】:

      【解决方案2】:

      在您的按钮点击事件处理程序中,您可以调用 TinyMCE 的 .setContent() 方法来设置编辑器内容。

      这是一个演示: https://codesandbox.io/s/set-content-in-tinymce-in-vue-jzciu

      别忘了,tinymce-vue 不包含 TinyMCE 本身的代码。您要么必须使用 API 密钥(可以在 tiny.cloud 免费获得),要么使用 TinyMCE 的自托管安装。 (有关详细信息,请参阅第 6 步,此处:https://www.tiny.cloud/docs/integrations/vue/#procedure

      【讨论】:

      • 嗨!我得到了 API 并将其插入到 tinymce 元素中,就像你说的那样(有问题的更新代码)。我仍然不断收到'tinymce' is not defined
      【解决方案3】:

      如果您想将内容插入 TinyMCE,您应该使用它的 API 来执行此操作:

      https://www.tiny.cloud/docs/api/tinymce/tinymce.editor/#setcontent https://www.tiny.cloud/docs/api/tinymce/tinymce.editor/#insertcontent

      例如:

      tinymce.activeEditor.setContent('<span class="some-class">text</span>');
      tinymce.activeEditor.insertContent('<span class="some-class">text</span>');
      

      【讨论】:

      • 但是如何使用 tinymce-vue 访问tinymce.activeEditor?我不知道如何访问该对象或如何导入它。我刚收到'tinymce' is not defined。我更新了问题以显示我到目前为止所做的事情......
      • tinymce is not defined 是在运行时还是在构建项目时出错? Vue 包装器代码在运行时从我们的云平台抓取 TinyMCE,因此它应该在浏览器中可用。
      • 我发现了问题。 Eslint 一直告诉它没有定义。但是当我禁用 Eslint 时,应用程序构建正确。有什么想法可以让 vue/eslint 看到“tinymce”,尽管它没有在代码中定义?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多