gpt4 book ai didi

javascript - 在插入的节点后插入插入符号

转载 作者:可可西里 更新时间:2023-11-01 02:32:50 25 4
gpt4 key购买 nike

所以我有一个方法,它接受一个标签并将选定的文本包装在该标签中。

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);

关于javascript - 在插入的节点后插入插入符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9828623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com