有没有一种简单的方法来加载可以在 TinyMCE iframe 内工作的外部 javascript?
我发现的唯一东西(可能是答案)是:http ://www.tinymce.com/wiki.php/API3:class.tinymce.dom.ScriptLoader
但我不确定如何正确加载它或者它是否有效。我试图在tinymce.init
指令之前和之后加载它,甚至在它内部,但似乎没有任何效果。只是想知道如何初始化“ScriptLoader”功能。
有没有一种简单的方法来加载可以在 TinyMCE iframe 内工作的外部 javascript?
我发现的唯一东西(可能是答案)是:http ://www.tinymce.com/wiki.php/API3:class.tinymce.dom.ScriptLoader
但我不确定如何正确加载它或者它是否有效。我试图在tinymce.init
指令之前和之后加载它,甚至在它内部,但似乎没有任何效果。只是想知道如何初始化“ScriptLoader”功能。
您可以使用 setup init 配置参数来使用脚本加载器
tinyMCE.init({
...
setup : function(ed) {
ed.onInit.add(function(ed, evt) {
// Load a script from a specific URL using the global script loader
tinymce.ScriptLoader.load('somescript.js');
// Load a script using a unique instance of the script loader
var scriptLoader = new tinymce.dom.ScriptLoader();
scriptLoader.load('somescript.js');
});
}
});
为了用 jquery 插件做到这一点,我需要这样做:
$('textarea').tinymce({
...
setup: function(editor) {
var scriptLoader = new tinymce.dom.ScriptLoader();
scriptLoader.add("Your first script");
scriptLoader.add("Your second script");
scriptLoader.loadQueue();
...
});
});
下面提到了另一种肯定尝试的方法,现在在编辑器初始化之后,我们可以访问 iframe 的元素并在那里插入或 js。请注意,如果您想使用 html 源代码保存脚本路径,则将脚本添加到侧正文中,否则我将其添加到 head 部分,因为我只想预览这些内容。
tinymce.init({
...,
setup : function(ed){
ed.on('init',function(){
console.log('Initialized')
var head = ed.dom.select('head')[0]
//for body //var body = ed.dom.select('body')[0]
ed.dom.add(
head,
'script',
{
src: "/path/to/file1.js",
type: 'text/javascript'
}
);
ed.dom.add(
head,
'script',
{
src: "/path/to/file1.js",
type: 'text/javascript'
}
);
})
}
});
这样,您可以在编辑器完全初始化后添加多个 JS 文件。