1

有没有办法在 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 caret 的span 节点。因此我需要别的东西而不是那个范围。有任何想法吗?

4

1 回答 1

0

如何选择要插入内容的实际位置,然后使用mceInsertContentexecCommand:

ed.execCommand('mceInsertContent', false, '<span class="marker">my_node_content</span>');
于 2013-03-19T15:43:28.223 回答