事件回调没有得到目标信息

时间:2015-12-22 21:00:12

标签: javascript jquery iframe javascript-events tinymce

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

当页面加载时,我在填充tinymce的两个localstorage实例时没有问题,但是当它们被更改时,我似乎无法传递适当的jQuery event包含event.targetupdate信息给iframe处理程序。我怀疑这是由于update,但我很难过。

在我的e.target回调中,我需要知道e.target.idtinymce.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); }); } }); ,但它会传递一个不包含该信息的对象,如下所示:

{isTrusted: true, screenX: 953, screenY: 790, clientX: 298, clientY: 20…}
function versionCompare(myVersion, minimumVersion) {

    var v1 = myVersion.split("."), v2 = minimumVersion.split("."), minLength;   

    minLength= Math.min(v1.length, v2.length);

    for(i=0; i<minLength; i++) {
        if(Number(v1[i]) > Number(v2[i])) {
            return true;
        }
        if(Number(v1[i]) < Number(v2[i])) {
            return false;
        }           
    }

    return (v1.length >= v2.length);
}

1 个答案:

答案 0 :(得分:2)

这里的问题是你获得编辑ID。您可以使用以下内容获取它:

NodeUtils.getTargetAssociatedNodeRef

对于一个现场的例子,我创建了一个小小的小提琴:http://fiddle.tinymce.com/6mfaab/1