所以我有一个方法需要一个标签并将选定的文本包装在该标签中。在插入节点后面插入插入符号
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)中工作。
你是男人:) – endy 2012-03-23 03:22:59
@phil mccull +1的答案。 如果您只需要在该div中插入文本而不在文档中的任何其他位置,单击'wrap'时会怎么样? – 2014-09-04 05:26:00
从链接中得到了我的问题的答案:http://stackoverflow.com/a/8340432/1407434,更新的小提琴:http://jsfiddle.net/tM3mA/38/ – 2014-09-04 05:46:12