Javascript 在指定位置插入元素

Javascript 在指定位置插入元素,javascript,dom,tinymce,Javascript,Dom,Tinymce,有没有办法在tinyMCE中以指定的偏移量插入内容?我需要在运行时在文档中的某个位置插入一个元素 编辑:更具体地说,我需要从一个客户机获取光标位置,将其发送到服务器并广播给其他客户机,以便在他们的屏幕上绘制自定义光标,并且他们知道其他客户机正在写入的位置。我遇到的问题是如何插入我想要的节点,该节点包含插入符号|的偏移量。我想出了如何获得插入符号偏移量以及如何将其发送过来。唯一的问题是,似乎没有方法将节点插入到诸如insertNodeelement、position或类似的位置 这是我现在掌握的代

有没有办法在tinyMCE中以指定的偏移量插入内容?我需要在运行时在文档中的某个位置插入一个元素

编辑:更具体地说,我需要从一个客户机获取光标位置,将其发送到服务器并广播给其他客户机,以便在他们的屏幕上绘制自定义光标,并且他们知道其他客户机正在写入的位置。我遇到的问题是如何插入我想要的节点,该节点包含插入符号|的偏移量。我想出了如何获得插入符号偏移量以及如何将其发送过来。唯一的问题是,似乎没有方法将节点插入到诸如insertNodeelement、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节点。因此,我需要别的东西,而不是那个范围。有什么想法吗?

选择要插入内容的实际位置,然后使用mceinsercontent execute命令:

ed.execCommand('mceInsertContent', false, '<span class="marker">my_node_content</span>');

我从未使用过tinyMCE,但您到底想插入什么?去哪里?你能说得更具体一点吗?我正在尝试在编辑器上插入一个自定义插入符号,它对应于tinyMCE插入符号本身的位置,因为我使用编辑器进行实时协作。我已经知道插入节点的位置。我只需要一个方法在那个位置插入节点,这就是你要找的不,不是真的。我在服务器端使用它来知道用户在哪里键入并获取光标位置。现在,在客户端,我需要将节点添加到位置,即按编号而不是选择,例如,在10处插入节点,其中10是一个分支,我也考虑过这一点,但我无法选择要插入的位置,因为我必须让多个用户同时在文档的不同位置写入。现在,我通过从服务器发送带有文本的实际跨度来解决这个问题。但我在单击和箭头键时仍然存在问题,因为我无法理解这一部分:/似乎没有在tinymce上的某个位置插入的方法。我真的到处找了!需要说明的是:var el=tinyMCE.activeEditor.dom.create'div',{id:'test','class':'myclass'},'some content';tinyMCE.activeEditor.selection.setNodeel;不起作用,因为你有几个人在同一个编辑器上工作,因此你不能使用tinymce选择-对吗?是的,你是对的,我不能使用选择。关于如何在不使用选择的情况下在特定位置插入节点,很少有人响应。我想我必须找到另一种解决方法。带有索引结构的tinymce书签。不幸的是,他们不会为你工作,因为你的编辑器内容可能会在两者之间发生变化,这会导致书签失效:哦,是的,我确实尝试过,并且发现了书签中间改变内容的问题。我真的被这件事缠住了。我正在考虑使用另一个编辑器或其他东西,或者编码,或者尝试将自己的函数添加到tinymce的代码中。我认为这是唯一的解决办法。感谢您的关注: