JavaScript插入插入节点后插入插入符号

前端之家收集整理的这篇文章主要介绍了JavaScript插入插入节点后插入插入符号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我有一个方法获取一个标签,并将选定的文本包装在该标签中.
function wrap(tag) 
{               
    var sel,range;
    if (window.getSelection)
    {
        sel = window.getSelection();
        if (sel.rangeCount)
        {
            range = sel.getRangeAt(0);
            var selectedText = range.toString();
            range.deleteContents();
            range.insertNode(document.createTextNode('['+tag+']'+selectedText+'[/'+tag+']'));                            
        }
    } 
}

但是,这个问题是在完成文本包装之后插入插入文本的插入符(插入符之前)插入该节点.

有没有插入文本的方法,并且插入符号留在最后?

请注意,如果没有使用jQuery或任何其他库,可以这样做.我只需要它在webkit(Safari)中工作.

解决方法

您可以使用range.setStartAfter和range.setEndAfter方法将起点和终点设置为新节点之后的点.我在这里设置一个jsfiddle示例: http://jsfiddle.net/phil_mcc/tM3mA/
//move the caret
range.setStartAfter(newNode);
range.setEndAfter(newNode); 
sel.removeAllRanges();
sel.addRange(range);
原文链接:https://www.f2er.com/js/150632.html

猜你在找的JavaScript相关文章