您可以使用从选择中获得的范围的deleteContents()
,toString()
和insertNode()
方法来执行此操作。
以下内容适用于除 IE <= 8 以外的所有主要浏览器。对于这些浏览器,您需要采用不同的方法,如果您需要,我可以概述一下。
演示:http: //jsfiddle.net/HUm2K/
代码:
var sel = window.getSelection();
if (sel.rangeCount > 0) {
var range = sel.getRangeAt(0);
var newSpan = document.createElement("span");
var selectedTextNode = document.createTextNode( range.toString() );
newSpan.appendChild(selectedTextNode);
range.deleteContents();
range.insertNode(newSpan);
range.selectNode(newSpan);
sel.removeAllRanges();
sel.addRange(range);
}