6

我正在处理现有项目。我必须检测到 tinyMCEfocusout/blur事件才能通过 AJAX 自动保存它。我发现以下现有工作代码:

// reinit tinymce
$($("#chapterBill div:.module-container")[indexAfter]).find('textarea').each(function(i){
   editorId = $(this).attr('id');
   tinymce.EditorManager.execCommand('mceAddControl',true, editorId);
});

有人可以告诉我如何捕获 tinyMCE textareafocusout/blur事件吗?

谢谢

4

2 回答 2

5

您不想捕获 textarea 焦点/模糊。Tinymce 隐藏了以前的 textarea 并创建了一个 contenteditable iframe,您可以在其中输入/编辑内容。此内容不时被写入以前的隐藏文本区域(基于事件)。

为了在编辑器上捕获焦点/模糊,您需要在编辑器 iframe 上为此设置一个处理程序。

将此代码放入您的tinymce init

setup : function(ed) {
    ed.onInit.add(function(ed, evt) {
        tinymce.dom.Event.add(ed.getDoc(), 'blur', function(e) {
            // Do something when the editor window is blured.
            alert('blur!!!');
        });
    });
},
于 2012-01-10T09:29:23.613 回答
0

我也在研究一种解决方案,以便通过 AJAX 动态保存 tinyMCE 内容。许多答案指示在 init 中设置此选项,但是由于代码正在多个系统中使用,因此我无法使用这种便利。我需要一个特定于页面的解决方案,我能够像这样实现:

$( window ).load(function(){
    tinymce.get('id').on('blur', function(e) {
        var content = tinymce.get('id');
        console.log(content);
    });
});

作为id在您的 textarea 元素上设置的 id 属性。

于 2015-04-13T20:20:14.677 回答