一尘不染

如何使用javascript获取选定的html文本?

javascript

我可以使用以下代码来获取选定的文本:

text=window.getSelection(); /// for Firefox text=document.selection.createRange().text; /// for IE

但是,如何获取包含文本和html标签的选定HTML?


阅读 333

收藏
2020-05-01

共1个答案

一尘不染

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

不幸的是,我似乎无法将节点放回原来的位置(例如,因为您可以从跨度中拉出一半的文本)。

2020-05-01