是否有一种简单的方法来加载可在TinyMCE iframe内部工作的外部JavaScript?
我发现的唯一一件事(可能是答案)是:http://www.tinymce.com/wiki.php/API3:class.tinymce.dom.ScriptLoader
但是我不确定如何正确加载它或者它是否正常工作。我试图在tinymce.init
指令之前和之后加载它,甚至在它内部,但似乎没有任何效果。只是想知道如何使用“ScriptLoader”功能。
答案 0 :(得分:7)
您可以使用setup init配置参数
来使用scriptloadertinyMCE.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');
});
}
});
答案 1 :(得分:1)
为了使用jquery插件执行此操作,我需要执行此操作:
$('textarea').tinymce({
...
setup: function(editor) {
var scriptLoader = new tinymce.dom.ScriptLoader();
scriptLoader.add("Your first script");
scriptLoader.add("Your second script");
scriptLoader.loadQueue();
...
});
});
答案 2 :(得分:0)
下面提到了另一种绝对可以尝试的方法,现在编辑器初始化后,我们可以访问iframe的元素并在那里插入或js。请注意,如果你想用 html 源代码保存脚本路径,然后在侧体中添加脚本,否则我将它添加到头部部分,因为我只是想预览这些东西。
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 文件。
答案 3 :(得分:-2)
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');
});
}
});