在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);
不幸的是,我似乎无法将节点放回原来的位置(例如,因为您可以从跨度中拉出一半的文本)。