実行時に 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");
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 のパラメーターです。