有没有办法在tinyMCE中的指定偏移处插入内容?我需要在运行时在文档中的某个位置插入一个元素。
编辑:为了更具体,我需要从一个客户端获取光标位置,将其发送到服务器并将其广播到其他客户端,以便在屏幕上绘制自定义光标并且知道其他客户在哪里写。我遇到的部分是如何插入包含插入符号的节点在抵消。我想出了如何获得插入符号偏移以及如何发送它。唯一的问题是似乎没有方法可以在以下位置插入节点:insertNode(element,position)或类似的东西。
这是我现在的代码:
hub.client.broadcastPosition = function (position) {
range = ed.selection.getRng();
var newNode = ed.getDoc().createElement("span");
newNode.id = "caret";
newNode.setAttribute("class", "all-carets");
var element = ed.getDoc().getElementById("caret");
if (element != null) {
element.parentNode.removeChild(element);
}
newNode.innerHTML = "|";
newNode.style.color = "black";
range.setStart(range.startContainer, position);
range.setEnd(range.startContainer, position);
range.insertNode(newNode, position);
};
我正在通过服务器发送职位:
var s = ed.selection.getSel();
if (s) {
if (s.anchorNode && s.anchorNode.nodeType == 3) {
caretPosInElement = s.anchorOffset;
hub.server.sendPos(caretPosInElement);
}
}
在客户端,即broadcastPosition函数,我需要在我从服务器发送的位置插入带有id插入符号的span节点。因此我需要别的东西而不是那个范围。有什么想法吗?
答案 0 :(得分:0)
如何选择要插入内容的实际位置,然后使用mceInsertContent
execCommand:
ed.execCommand('mceInsertContent', false, '<span class="marker">my_node_content</span>');