5

TinyMCE iframe内で機能する外部JavaScriptをロードする簡単な方法はありますか?

私が見つけた唯一のもの(それが答えかもしれません)はこれです:http ://www.tinymce.com/wiki.php/API3:class.tinymce.dom.ScriptLoader

しかし、これを正しくロードする方法や、まったく機能するかどうかはわかりません。tinymce.initディレクティブの前後、内部でもロードしようとしましたが、何も動作しないようです。「ScriptLoader」関数を初期化する方法を考えているだけです。

4

3 に答える 3

8

setupinit構成パラメーターを使用してスクリプトローダーを使用できます

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ソースコードとともに保存する場合は、スクリプトをサイドボディに追加します。それ以外の場合は、プレビューしたいだけなので、ヘッドセクションに追加します。

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 に答える