簡體   English   中英

有沒有辦法在 tinymce iframe 中加載外部 javascript 文件?

[英]is there a way to load an external javascript file inside the tinymce iframe?

有沒有一種簡單的方法來加載可以在 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 源代碼保存腳本路徑,然后在側體中添加腳本,否則我將它添加到頭部部分,因為我只想預覽這些東西。

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 文件。

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');

      });
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM