TinyMCE 未加载到 vue 组件中
TinyMCE not loaded in vue component
我正在尝试将 tinymce 集成到我的 vue 应用程序中。我不想使用云版本,我已经将它安装在我的应用程序中以起诉此推荐 npm i tinymce
。
设置到我的组件后,我以这种方式导入了所需的文件,并在模板中创建了一个文本区域
<template>
<Navbar></Navbar>
<div class="container" id="editorWrapper">
<div class="row mt-5 pt-5 m-0">
<!-- -->
<div class="col-sm-12 col-md-12 col-lg-12 p-0" id="">
<h1>Write post</h1>
</div>
<!-- -->
<div class="col-sm-12 col-md-12 col-lg-12 p-0" id="programEditorWrapper">
<textarea ref="programEditor" id="programEditor"></textarea>
</div>
</div>
</div>
</template>
<script>
import tinymce from 'tinymce'
import 'tinymce/themes/silver'
import 'tinymce/skins/ui/oxide/skin.css'
import 'tinymce/plugins/advlist'
import 'tinymce/plugins/code'
import 'tinymce/plugins/emoticons'
import 'tinymce/plugins/emoticons/js/emojis'
import 'tinymce/plugins/link'
import 'tinymce/plugins/lists'
import 'tinymce/plugins/table'
import contentUiCss from 'tinymce/skins/ui/oxide/content.css'
import contentCss from 'tinymce/skins/content/default/content.css'
export default {
name: 'ProgramsEditor',
components: {
Navbar
},
data() {
return {
editor: null
}
},
created() {
},
mounted() {
this.initEditor()
},
methods: {
initEditor() {
this.editor = tinymce.init({
selector: '#programEditor',
plugins: 'advlist code emoticons link lists table',
toolbar: 'bold italic | bullist numlist | link emoticons',
skin: false,
content_css: false,
content_style: contentUiCss.toString() + '\n' + contentCss.toString()
})
},
}
}
</script>
很遗憾,我无法看到编辑器,并且出现了两个错误
如何解决这个问题并让编辑器工作?
根据错误消息和提供的代码片段,您错过了导入 TinyMCE 使用的一些关键文件,因此它试图加载似乎不存在或被用作的外部 JS 文件HTML 个文件(可能是 404 页面)。
我建议进一步查看 TinyMCE 捆绑文档,其中包含答案:https://www.tiny.cloud/docs/tinymce/6/introduction-to-bundling-tinymce/。因此,在这种情况下,要解决您遇到的 2 个错误,应该可以通过在主题旁边导入模型和默认图标包来解决:
import tinymce from 'tinymce'
import 'tinymce/icons/default';
import 'tinymce/themes/silver';
import 'tinymce/models/dom';
基本上,TinyMCE 至少需要核心、主题、皮肤、默认图标包和模型才能运行(注意:模型是 TinyMCE 6 中的新模型,之前不需要)。如果遗漏其中任何一个,它将无法初始化。
此外,您可以使用 official Vue integration guide。
安装后。
简单输入核心包:
您需要安装核心 tinymce 包和 tinymce-vue。
import "tinymce/tinymce";
import "tinymce/themes/silver";
import "tinymce/icons/default";
import "tinymce/skins/ui/oxide/skin.css";
import <Your component name here> from "@tinymce/tinymce-vue";
并将其用作普通的 Vue 组件。
我正在尝试将 tinymce 集成到我的 vue 应用程序中。我不想使用云版本,我已经将它安装在我的应用程序中以起诉此推荐 npm i tinymce
。
设置到我的组件后,我以这种方式导入了所需的文件,并在模板中创建了一个文本区域
<template>
<Navbar></Navbar>
<div class="container" id="editorWrapper">
<div class="row mt-5 pt-5 m-0">
<!-- -->
<div class="col-sm-12 col-md-12 col-lg-12 p-0" id="">
<h1>Write post</h1>
</div>
<!-- -->
<div class="col-sm-12 col-md-12 col-lg-12 p-0" id="programEditorWrapper">
<textarea ref="programEditor" id="programEditor"></textarea>
</div>
</div>
</div>
</template>
<script>
import tinymce from 'tinymce'
import 'tinymce/themes/silver'
import 'tinymce/skins/ui/oxide/skin.css'
import 'tinymce/plugins/advlist'
import 'tinymce/plugins/code'
import 'tinymce/plugins/emoticons'
import 'tinymce/plugins/emoticons/js/emojis'
import 'tinymce/plugins/link'
import 'tinymce/plugins/lists'
import 'tinymce/plugins/table'
import contentUiCss from 'tinymce/skins/ui/oxide/content.css'
import contentCss from 'tinymce/skins/content/default/content.css'
export default {
name: 'ProgramsEditor',
components: {
Navbar
},
data() {
return {
editor: null
}
},
created() {
},
mounted() {
this.initEditor()
},
methods: {
initEditor() {
this.editor = tinymce.init({
selector: '#programEditor',
plugins: 'advlist code emoticons link lists table',
toolbar: 'bold italic | bullist numlist | link emoticons',
skin: false,
content_css: false,
content_style: contentUiCss.toString() + '\n' + contentCss.toString()
})
},
}
}
</script>
很遗憾,我无法看到编辑器,并且出现了两个错误
如何解决这个问题并让编辑器工作?
根据错误消息和提供的代码片段,您错过了导入 TinyMCE 使用的一些关键文件,因此它试图加载似乎不存在或被用作的外部 JS 文件HTML 个文件(可能是 404 页面)。
我建议进一步查看 TinyMCE 捆绑文档,其中包含答案:https://www.tiny.cloud/docs/tinymce/6/introduction-to-bundling-tinymce/。因此,在这种情况下,要解决您遇到的 2 个错误,应该可以通过在主题旁边导入模型和默认图标包来解决:
import tinymce from 'tinymce'
import 'tinymce/icons/default';
import 'tinymce/themes/silver';
import 'tinymce/models/dom';
基本上,TinyMCE 至少需要核心、主题、皮肤、默认图标包和模型才能运行(注意:模型是 TinyMCE 6 中的新模型,之前不需要)。如果遗漏其中任何一个,它将无法初始化。
此外,您可以使用 official Vue integration guide。
安装后。
简单输入核心包:
您需要安装核心 tinymce 包和 tinymce-vue。
import "tinymce/tinymce";
import "tinymce/themes/silver";
import "tinymce/icons/default";
import "tinymce/skins/ui/oxide/skin.css";
import <Your component name here> from "@tinymce/tinymce-vue";
并将其用作普通的 Vue 组件。