我在運行時將一個span添加到tinymce文檔中。新添加的DOM元素返回null
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方法,並通過追加孩子委託給我所需的元素將它添加到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( 「閃爍()」,700),其中OnInit的是TinyMCE的參數。
你在插入節點後調用'document.getElementById(「caret」)* *嗎? 'ed.getDoc()。getElementById(「caret」)'工作嗎? – 2013-03-16 16:48:33
我不認識這些('ed.onKeyUp.add','ed.getDoc()'...)。你在使用某種JavaScript庫嗎? – 2013-03-16 16:48:43
@ scott.korin:這是TinyMCE – Dancrumb 2013-03-16 16:49:59