我试图像这样动态加载TinyMCE(点击按钮):
$.getScript('path/to/mce4/tinymce.min.js', function(){
var def = {
selector: 'textarea',
body_class: 'sp-mce-editor',
content_css : "path/to/styles/mce.css",
plugins: ['advlist autolink lists link image charmap print preview hr anchor pagebreak searchreplace wordcount visualblocks visualchars code insertdatetime media nonbreaking table contextmenu directionality emoticons template paste textcolor fullscreen autoresize'],
toolbar: "bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | fontsizeselect forecolor backcolor | preview fullscreen | template",
toolbar_items_size: 'small',
relative_urls : false,
convert_urls : true,
external_plugins: { "nanospell": "path/to/mce4/nanospell/plugin.js" },
nanospell_server:"php",
file_browser_callback: RoxyFileBrowser,
init_instance_callback: (typeof processEditor != 'undefined' ? processEditor : null)
};
tinymce.init(def);
});
使用此配置,tinyMCE无法初始化。在控制台中,我看到几个404错误,每个错误都有这样的消息:
Failed to load: /path/to/mce4/plugins/textcolor/plugin.js
确保在控制台中检查JS文件tinymce.min.js
正确加载。此外,/path/to/mce4/plugins/textcolor/plugin.js
不存在。但/path/to/mce4/plugins/textcolor/plugin.min.js
存在,对于所有涉及的js文件都是如此(即.min.js
文件存在,但无论出于何种原因,tinyMCE都在寻找.js
文件。
现在,当我在<head>
的脚本标签中加载tinyMCE时,根本没有问题,而且一切正常。
可能导致此错误的原因是什么,我应该如何解决?如果这是tinyMCE的预期行为,那么为我正在处理的场景动态加载其js文件的正确方法是什么?
答案 0 :(得分:1)
如果您使用angular2 + with angular-cli,以下内容可能会对您有所帮助。
假设您要添加名为autoresize
的插件。检查node_modules/tinymce/plugins
中是否存在此插件。如果是,请执行以下操作:
1. 在angular-cli.json :
"styles": [
"../node_modules/tinymce/tinymce.js",
"../node_modules/tinymce/themes/modern/theme.js",
"../node_modules/tinymce/plugins/link/plugin.js",
"../node_modules/tinymce/plugins/paste/plugin.js",
"../node_modules/tinymce/plugins/table/plugin.js",
**"../node_modules/tinymce/plugins/autoresize/plugin.js",/add this/**
"../node_modules/bootstrap/dist/css/bootstrap.css",
"../node_modules/font-awesome/css/font-awesome.css",
"styles.css"
],
2. 在初始化组件中:
tinymce.init({
...
plugins: ['link', 'paste', 'table','**autoresize**'],
autoresize_bottom_margin: 50,//this is plug in requirement
...
});
答案 1 :(得分:0)
我无法告诉你代码有什么问题,但这对我有用(TinyMCE 4.x)
我把这条路径放到了tinymce.min.js:
<script src="/tinymce/tinymce.min.js"></script>
因此它会加载页面加载。不要动态加载。
然后我定义了一个函数:
function IactivateMCE() {
tinymce.init({
selector: "div.c10",
code continue
})
}
然后我做了一个运行的onclick:IactivateMCE()在将动态内容添加到站点之后(我有一个功能,首先向站点添加动态内容,然后初始化TinyMCE)。
希望这会让你受益: - )