tinymce-vue富文本编辑器(翻译)

Posted taohuaya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tinymce-vue富文本编辑器(翻译)相关的知识,希望对你有一定的参考价值。

 官方Tinymce Vue组件 

翻译来自:https://github.com/tinymce/tinymce-vue

关于

这个包是一个围绕Tinymce的薄包装,以便于在Vue应用程序中使用。要快速演示,请查看storybook

用法

加载组件

首先,你必须加载组件,你如何做取决于你开发的应用程序是如何设置的。如果您使用某种捆绑加载程序(如Webpack、Rollup或Browserify),则可以按如下方式添加导入

// es modules
import Editor from ‘@tinymce/tinymce-vue‘;
// commonjs require
// NOTE: default needed after require
var Editor = require(‘@tinymce/tinymce-vue‘).default;

如果您不使用模块加载程序,只需将javascript文件导入添加到html文件中,则必须将npm包的lib/browser文件夹中的tinymce-vue.min.js文件复制到应用程序中,并添加如下内容:

<script src="path/to/tinymce-vue.min.js"></script>

然后可以将编辑器添加到app的组件属性中:

// This might look different depending on how you have set up your app
// but the important part is the components property
var app = new Vue({
  el: ‘#app‘,
  data: { /* Your data */ },
  components: {
    ‘editor‘: Editor // <- Important part
  },
  methods: { /* Your methods */}
})

在模板中使用组件

在模板中使用编辑器,如下所示:

<editor api-key="API_KEY" :init="{plugins: ‘wordcount‘}"></editor>

配置编辑器

这个编辑器接受下列的 props:

disabled: 使用这个获取布尔值的属性,您可以动态地将编辑器设置为“禁用”只读模式或正常可编辑模式。

id: 编辑器的ID,以便您以后可以使用tinymce上的tinymce.get(“id”)方法获取实例,默认为自动生成的UUID。

init: 对象发送到用于初始化编辑器的tinymce.init方法。

initial-value: 将用其初始化编辑器的初始值。

inline: 设置编辑器应内联的简写,<editor inline></editor>与设置相同{inline: true}   在init中。

tag-name: 仅当编辑器是内联的、决定要在哪个元素上初始化编辑器时使用,默认为DIV。

plugins:  设置要使用的插件的简写,<editor plugins="foo bar"></editor>与设置相同{plugins: ‘foo bar‘}在初始化中

toolbar: 设置要显示的工具栏项的简写,<editor toolbar="foo bar"></editor>与设置相同{toolbar: ‘foo bar‘} 在初始化中

model-events: 更改要触发v-model事件的事件,默认为‘change keyup‘

api-key: Api key 对于TinyMCE cloud, 更多信息如下。

cloud-channel:   Cloud channel 对于TinyMCE Cloud, 更多信息如下。

组件工作不需要任何配置属性-除非您使用Tinymce Cloud,否则您必须指定API密钥才能摆脱This domain is not registered…警告消息。

v-model

您还可以使用编辑器上的v-model指令(VueJS文档中的更多信息)创建双向数据绑定:

 

<editor v-model="content"></editor>

事件绑定

可以通过编辑器上的 属性 绑定编辑器事件,例如:

<editor @onSelectionChange="handlerFunction"></editor>

以下是可用事件的完整列表:

All available events

  • onActivate
  • onAddUndo
  • onBeforeAddUndo
  • onBeforeExecCommand
  • onBeforeGetContent
  • onBeforeRenderUI
  • onBeforeSetContent
  • onBeforePaste
  • onBlur
  • onChange
  • onClearUndos
  • onClick
  • onContextMenu
  • onCopy
  • onCut
  • onDblclick
  • onDeactivate
  • onDirty
  • onDrag
  • onDragDrop
  • onDragEnd
  • onDragGesture
  • onDragOver
  • onDrop
  • onExecCommand
  • onFocus
  • onFocusIn
  • onFocusOut
  • onGetContent
  • onHide
  • onInit
  • onKeyDown
  • onKeyPress
  • onKeyUp
  • onLoadContent
  • onMouseDown
  • onMouseEnter
  • onMouseLeave
  • onMouseMove
  • onMouseOut
  • onMouseOver
  • onMouseUp
  • onNodeChange
  • onObjectResizeStart
  • onObjectResized
  • onObjectSelected
  • onPaste
  • onPostProcess
  • onPostRender
  • onPreProcess
  • onProgressState
  • onRedo
  • onRemove
  • onReset
  • onSaveContent
  • onSelectionChange
  • onSetAttrib
  • onSetContent
  • onShow
  • onSubmit
  • onUndo
  • onVisualAid

加载 TinyMCE

Auto-loading from TinyMCE Cloud

编辑器组件需要Tinymce全局可用,但为了尽可能简单,如果在组件安装后找不到Tinymce可用,它将自动加载 TinyMCE Cloud .为了摆脱This domain is not registered... 警告.注册云并按如下方式输入API密钥:

<editor api-key=‘YOUR_API_KEY‘ :init="{/* your settings */}>"</editor>

您还可以定义要使用的云通道,有关不同版本的详细信息,请参见 文档.

Loading TinyMCE by yourself

要选择不使用Tinymce云,您必须让Tinymce自己在全球范围内可用。这可以通过自己托管tinymce.min.js文件并向HTML添加脚本标记来完成,或者,如果使用模块加载程序,则可以使用NPM安装tinymce。或者有关如何让Tinymce使用模块加载程序的信息,请参阅文档中的此页

 

以上是关于tinymce-vue富文本编辑器(翻译)的主要内容,如果未能解决你的问题,请参考以下文章

tinymce-vue5富文本的实现

TinyMce-Vue 富文本整合,实现图片视频上传功能

Vue项目使用富文本之tinymce-vue

tinymce 5更新后,如何使用tinymce-vue

JS周刊#405 - 精通模块化 JS,Parcel 1.10.0 发布,Trix 1.0 富文本编辑器,创建虚拟鸟类的簇拥行为

富文本编辑器从word复制粘贴公式