如何触发tinymce 4.x焦点和模糊事件

bre*_*ild 2 tinymce focus blur

我意识到这个问题已被多次询问和回答,但我仍然无法使许多解决方案发挥作用.似乎大多数讨论都比较旧,可能与4.x不兼容.

我的目标:能够在焦点或模糊时触发一些javascript函数.这是基本代码:

$('.tiny-mce').tinymce({
    script_url : '/xm_js/tinymce4/tinymce.min.js',
});
Run Code Online (Sandbox Code Playgroud)

我试过像这样的例子:

$('.tiny-mce').tinymce({
    script_url : '/xm_js/tinymce4/tinymce.min.js',

    setup : function(ed) {
        ed.onInit.add(function(ed, evt) {

        var dom = ed.dom;
        var doc = ed.getDoc();

            tinymce.dom.Event.add(doc, 'blur', function(e) {
                alert('blur!!!');
            });
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

返回:"未捕获的TypeError:无法调用未定义的方法'添加'"

$('.tiny-mce').tinymce({
    script_url : '/xm_js/tinymce4/tinymce.min.js',
});

tinymce.activeEditor.on('focus', function(e) {
    console.log(e.blurredEditor);
});
Run Code Online (Sandbox Code Playgroud)

返回:"未捕获的TypeError:无法调用未定义的方法"(但不确定我是否在正确的位置)

$('.tiny-mce').tinymce({
    script_url : '/xm_js/tinymce4/tinymce.min.js',

    setup: function(editor) {
        editor.on('focus', function(e) {
            console.log('focus event', e);
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

返回:"未捕获的SyntaxError:意外的标识符"

这只有在启动编辑器时才有效.我试过但还没有开始工作的其他事情:

tinymce.FocusManager tinymce.activeEditor

我错过了什么?谢谢.

更新:找到一个效果很好的解决方案: 当用户从其他输入字段跳转时,为什么TinyMCE会获得焦点和模糊事件?

sta*_*abm 8

http://fiddle.tinymce.com/8Xeaab/1上看到小提琴

tinymce.init({
    selector: "#editme",
    inline: true,
    setup: function(editor) {
        editor.on('focus', function(e) {
            console.log("focus");
        });

        editor.on('blur', function(e) {
            console.log("blur");
        });
    }
});
Run Code Online (Sandbox Code Playgroud)


gle*_*gui 6

您的提示标题涉及触发焦点和模糊事件,但您实际上是在询问处理这些事件。如果有人仍在寻找触发事件的解决方案,则应通过以下方式:

tinymce.init({
        selector: "#textarea_123",
        ...
     });
Run Code Online (Sandbox Code Playgroud)

然后,设置焦点:

var inst = tinyMCE.EditorManager.get('textarea_123');
inst.focus();
Run Code Online (Sandbox Code Playgroud)