【问题标题】:tinyMCE textarea focusout event?tinyMCE textarea 聚焦事件?
【发布时间】:2012-01-09 16:06:40
【问题描述】:

我正在处理现有项目。我必须检测 tinyMCE focusout/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 textarea focusout/blur 事件?

谢谢

【问题讨论】:

    标签: javascript jquery tinymce textarea focusout


    【解决方案1】:

    您不想捕获 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!!!');
            });
        });
    },
    

    【讨论】:

    • 我认为 Google Chrome 中的 blur 存在一些问题。它在 Firefox 中运行良好。
    • 这在 Chrome 中不起作用。 focusblur 事件仅在 Firefox 中触发。
    • 在这里使用 jQuery 怎么样:$(ed.getDoc()).bind('blur', function(e){alert('blur!!!');});
    【解决方案2】:

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

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

    id 是 textarea 元素上设置的 id 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 2019-06-30
      相关资源
      最近更新 更多