HTML& DOM:如何在文本中的任意位置插入元素或节点?

时间:2011-08-25 16:57:48

标签: html dom text insert

可以找到最近的元素,然后替换它的内部HTML,但必须有一个DOM方式。

(例如,鼠标单击文本将调用一个函数,该函数在文本的位置插入一个元素,由鼠标光标指向。)

是否有类似indexOf的DOM函数?

1 个答案:

答案 0 :(得分:1)

阅读范围。

您可能希望在文字的给定位置获得空白范围,并使用.insertNode().pasteHTML()

修改:我在Chrome和IE中对此进行了测试。 Onclick将选择设置为您单击的空范围:

document.onclick = function(e)
{
    if (window.getSelection)
    {
        getSelection().getRangeAt(0).insertNode(document.createTextNode("x"));
    }
    else if (document.selection)
    {
        document.selection.createRange().pasteHTML("x");
    }
}

您可能需要检查选择的长度并在必要时折叠范围以避免覆盖所选文本。