我可以使用以下代码来获取选定的文本:
text=window.getSelection(); /// for Firefox text=document.selection.createRange().text; /// for IE
但是,如何获取包含文本和html标签的选定HTML?
在IE <= 10浏览器中,它是:
document.selection.createRange().htmlText
在非IE浏览器中,我只是尝试玩这个游戏……这似乎奏效,将节点分成两半并产生额外的跨度会产生副作用,但这是一个起点:
var range = window.getSelection().getRangeAt(0), content = range.extractContents(), span = document.createElement('SPAN'); span.appendChild(content); var htmlContent = span.innerHTML; range.insertNode(span); alert(htmlContent);
不幸的是,我似乎无法将节点放回原来的位置(例如,因为您可以从跨度中拉出一半的文本)。