我使用的是最新版本的TinyMCE 4.0b3。Jquery版本为1.9.1。下面是我的代码:
<script type="text/javascript" src="tinymce/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
selector: "textarea",
theme: "modern",
plugins: [
"advlist autolink lists link image charmap print preview hr anchor pagebreak",
"searchreplace wordcount visualblocks visualchars code fullscreen",
"insertdatetime media nonbreaking save table contextmenu directionality",
"emoticons template paste textcolor"
],
toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
toolbar2: "print preview media | forecolor backcolor emoticons",
image_advtab: true,
templates: [
{title: 'Test template 1', content: 'Test 1'},
{title: 'Test template 2', content: 'Test 2'}
],
});
</script>
<textarea name="content" rows="5" cols="100"/>
以上代码在IE9标准模式下工作完美。但不是在IE9兼容模式下,mozilla firefox, google chrome, safari。我在浏览器控制台没有看到任何错误。
我看到了很多关于这个问题的帖子,jquery应该在时间之后加载来解决这个问题。但在我们的应用程序中,我们不能这样做,因为jquery是在主页本身加载的。
我尝试使用$(document)。现成的功能,但没有使用。我不确定这是否是jquery的问题。
编辑:以上代码在所有浏览器的纯html文件中都可以正常工作。在我们的应用程序中,我们使用hbs(handlebar脚本)文件。当我试图把代码放到hbs文件时,它不起作用。
有其他方法可以解决这个问题吗
在我们的应用程序中,我们也使用require js。因此,我们需要做shims配置,使其工作。
requirejs.config({
baseUrl: "js",
paths: {
tinyMCE: 'libs/tinymce/tiny_mce'
},
shim: {
tinyMCE: {
exports: 'tinyMCE',
init: function () {
this.tinyMCE.DOM.events.domLoaded = true;
return this.tinyMCE;
}
}
}
});
参考:我如何实现TinyMCE与Require.js?
尝试将脚本代码放在body标签之后。