TinyMCE:初始化后如何绑定事件

dio*_*ney 9 javascript events tinymce callback handler

我已经搜索了很多但是通过google-fu'ing不会得到任何结果:(

我有一个已初始化的tinyMCE编辑器,我无法控制初始化过程,因此以下代码根本不起作用:

tinyMCE.init({
   ...
   setup : function(ed) {
          ed.onChange.add(function(ed, l) {
                  console.debug('Editor contents was modified. Contents: ' + l.content);
          });
   }
});
Run Code Online (Sandbox Code Playgroud)

由于未定义jQuery tinymce插件,因此以下代码不起作用:

$('textarea').tinymce({
    setup: function(ed) {
        ed.onClick.add(function(ed, e) {
            alert('Editor was clicked: ' + e.target.nodeName);
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

我的意思是,它必须使用tinymce.something语法.

在tinyMCE初始化之后,如何将回调函数绑定到任何tinyMCE事件?

dio*_*ney 10

在使用console.log()侵入tinymce对象后,我找到了一个可行的解决方案:

setTimeout(function () {
       for (var i = 0; i < tinymce.editors.length; i++) {
             tinymce.editors[i].onChange.add(function (ed, e) {
             // Update HTML view textarea (that is the one used to send the data to server).
         ed.save();
       });
            }
}, 1000);
Run Code Online (Sandbox Code Playgroud)

在回调函数内部,可以设置任何想要的事件绑定.

setTimeout电话是克服的赛车状况tinymcejQuery,因为当该呼叫tinymce.editors[i].onChange.add()是由TinyMCE的尚未初始化.


Luc*_*uci 10

虽然这篇文章现在已经过时了,但我认为其他人需要这个答案.我有同样的问题并修复它我做了这个:

tinyMCE.init({
        ...
        init_instance_callback : "myCustomInitInstance"
});
Run Code Online (Sandbox Code Playgroud)

基于http://www.tinymce.com/wiki.php/Configuration3x:init_instance_callback