事件回调未获取tinymce目标信息

Event callback not getting tinymce target information

本文关键字:目标 信息 tinymce 获取 回调 事件      更新时间:2023-09-26

我在一个页面上有两个tinymce实例,当它们被更改时,我想更新一个最终保存到localStorage的Javascript对象。

当页面加载时,我可以从localstorage填充两个tinymce实例,但当它们发生更改时,我似乎无法将包含event.target信息的适当jQuery event传递给我的update处理程序。我怀疑是iframe造成的,但我被难住了。

在我的update回调中,我需要知道e.targete.target.id,但它传递了一个不包含该信息的对象,类似于以下内容:

{isTrusted:true,screenX:953,screenY:790,clientX:298,clientY:20…}
tinymce.init({             
         setup:function(ed){
              ed.on("init",function(e){
                  switch(e.target.id){                             
                      case "intro":
                          _content = obj.INFO.INTRO.TEXT;
                          break;
                      case "conclude":
                          _content = obj.INFO.CONCLUDE.TEXT;
                          break;
                      }
                      tinyMCE.activeEditor.setContent(_content);
         });
         ed.on("change",function(e){
              //update(jQuery.Event("edit",{target:$(e.currentTarget).find("body")}));
              //jQuery.Event("edit",{target:e.currentTarget})
              update(e);
         });
         ed.on("keyup",function(e){
              //update(jQuery.Event("edit",{target:$(e.currentTarget).find("body")}));
              update(e);
         });
         ed.on("click",function(e){
              //update(jQuery.Event("edit",{target:$(e.currentTarget).find("body")}));
              //jQuery.Event("edit",{target:tinyMCE.activeEditor, editor:tinyMCE.activeEditor.id})
              update(e);
         });
    }
});

这里的问题是获取编辑器id。您可以使用以下方法获取:

setup:function(ed){
     ed.on("init",function(e){
               console.log('target id:',e.target.id);
     });
     ed.on("click",function(e,f){
       var editor_id = e.view.frameElement.id.slice(0, -4);
       console.log('editor_id:', editor_id);
       // or much easier using ed.id
       editor_id = ed.id;
       // if you want to address the editor body you can use ed.getBody()
       var my_editor = tinymce.get(editor_id);
       // update(e);
     });
},

举一个我创作的小提琴的例子:http://fiddle.tinymce.com/6mfaab/1