簡體   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