5

有没有一种简单的方法来加载可以在 TinyMCE iframe 内工作的外部 javascript?

我发现的唯一东西(可能是答案)是:http ://www.tinymce.com/wiki.php/API3:class.tinymce.dom.ScriptLoader

但我不确定如何正确加载它或者它是否有效。我试图在tinymce.init指令之前和之后加载它,甚至在它内部,但似乎没有任何效果。只是想知道如何初始化“ScriptLoader”功能。

4

3 回答 3

8

您可以使用 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');

      });
   }
});
于 2012-09-13T10:10:56.883 回答
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();

    ...
  });
});
于 2017-01-05T19:17:31.250 回答
0

下面提到了另一种肯定尝试的方法,现在在编辑器初始化之后,我们可以访问 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 文件。

于 2021-06-12T00:14:10.473 回答