我正在尝试在我的项目中使用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>
模板头标签中的
。
但是收到以下错误。
资源解释为脚本,但使用MIME类型text / html传输:"http://localhost:3000/%3Cyour%20installation%20path%3E/tinymce/tinymce.min.js". (index):97
未捕获的SyntaxError:意外的令牌&lt; tinymce.min.js:1
未捕获的ReferenceError:没有定义tinymce
如何解决此问题?它与CKEditor相同。 还有其他丰富的编辑器,我可以在Meteor JS中使用吗?
答案 0 :(得分:7)
首先,您需要将CKEDITOR构建下载中的所有内容放在公用文件夹中。 CKEDITOR提供各种各样的东西,并根据相关目录引用所有内容。
您的公用文件夹应该有一个名为ckeditor的目录,它应该包含以下文件和文件夹:
adapters
lang
plugins
skins
ckeditor.js
config.js
contents.css
styles.js
在您的主布局文件中引用CKEDITOR,如下所示:
<head>
<script type="text/javascript" src="/ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="/ckeditor/adapters/jquery.js"></script>
</head>
在你的模板中:
<template name="yourTemplate">
<textarea id="content" name="content"></textarea>
</template>
最后,在模板的渲染功能中:
Template.yourTemplate.rendered = function() {
$('#content').ckeditor();
};
通常情况下,您会说this.$('#content').ckeditor()
,但由于CKEDITOR位于您的公共文件夹中,因此无法正常工作。因此,您需要对#content
元素的全局引用。
答案 1 :(得分:1)
而不是/public
文件夹,将您的文件放在/client/compatibility
中。然后在要使用它的模板中初始化它。
Template.editor.rendered = function() {
tinymce.init({
selector: 'textarea'
});
};
答案 2 :(得分:0)
这是唯一搜索wysiwyg的结果:
https://github.com/mcrider/meteor-bootstrap-wysiwyg
meteor add mcrider:bootstrap-wysiwyg
看起来比CKEditor或TinyMCE简单一些,但也许这对你的项目来说没问题。