繁体   English   中英

新添加的DOM元素返回null

[英]Newly added DOM element returns null

我在运行时向一个tinymce文档添加了一个span。

ed.onKeyUp.add(function (ed, e) {
   sendText(ed, e);
   ed = tinyMCE.get('editor');
   range = ed.selection.getRng();

   var newNode = ed.getDoc().createElement("span");
   newNode.id = "caret";
   ed.getDoc().body.appendChild(newNode);

   newNode.innerHTML = "|";
   newNode.style.color = "black";
   range.insertNode(newNode);
});

正如您所看到的,我通过使用createElement方法添加节点,并使用append child将其添加到DOM中。

问题是我无法使用以下方法找到新添加的元素:

document.getElementById("caret");

它返回null。 为什么会这样? 知道我能做什么吗?

编辑 :我正在使用document.getElementById(“caret”); 在我调用初始化tinyMCE文档的函数中,因为我需要此函数来闪烁自定义插入符号。

这是功能:

function blink() {
        var caret = document.getElementById("caret");

        if (caret.style.color == "transparent") {
            caret.style.color = "black"
        } else {
            caret.style.color = "transparent";
        }
    }

我在oninit上调用它:setInterval(“blink()”,700)其中oninit是tinyMCE的参数。

TinyMCE使用包含其自己的文档的iframe来允许编辑。

因此,当您使用document.getElementById ,您正在搜索错误的DOM。

如果您可以访问TinyMCE编辑器对象,则可以使用ed.getDoc().getElementById()

如果需要全局访问,可以使用TinyMCE.editors集合访问特定编辑器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM