如何在Meteor JS中集成TinyMCE和CKEditor?

zev*_*uld 5 javascript jquery meteor

我想在我的项目中使用CKEditor或TinyMCE编辑器.所以我把TinyMCE文件夹放在meteor公共文件夹中,也放了

<head>
<script type="text/javascript" src="<your installation path>/tinymce/tinymce.min.js"></script>
<script type="text/javascript">
    tinymce.init({
        selector: "textarea"
    });
</script>
Run Code Online (Sandbox Code Playgroud)

在模板头标记.但是收到以下错误. 资源解释为脚本,但使用MIME类型text/html传输:"http://localhost:3000/%3Cyour%20installation%20path%3E/tinymce/tinymce.min.js". (index):97 Uncaught SyntaxError:意外的标记<tinymce.min.js:1未捕获的ReferenceError:未定义tinymce

我该如何解决这个问题?它与CKEditor相同.有没有其他丰富的编辑器,我可以在Meteor JS中使用它?

Bra*_*don 7

首先,您需要将CKEDITOR构建下载中的所有内容放在公用文件夹中.CKEDITOR带有各种各样的东西,并根据相关目录引用所有内容.

您的公用文件夹应该有一个名为ckeditor的目录,它应该包含以下文件和文件夹:

 adapters
 lang
 plugins
 skins
 ckeditor.js
 config.js
 contents.css
 styles.js
Run Code Online (Sandbox Code Playgroud)

在您的主要布局文件中引用CKEDITOR,如下所示:

 <head>
   <script type="text/javascript" src="/ckeditor/ckeditor.js"></script>
   <script type="text/javascript" src="/ckeditor/adapters/jquery.js"></script>
 </head>
Run Code Online (Sandbox Code Playgroud)

在您的模板中:

 <template name="yourTemplate">
   <textarea id="content" name="content"></textarea>
 </template>
Run Code Online (Sandbox Code Playgroud)

最后,在模板的渲染功能中:

 Template.yourTemplate.rendered = function() {
   $('#content').ckeditor();
 };
Run Code Online (Sandbox Code Playgroud)

通常情况下,你会说,this.$('#content').ckeditor()但这不起作用,因为CKEDITOR在你的公共文件夹中.因此,您需要对#content元素进行全局引用.