我在运行时向 tinymce 文档添加跨度。
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");
它返回空值。为什么会这样?知道我能做什么吗?
编辑:我正在使用 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 的参数。