复制并粘贴带有链接但在Javascript中没有隐藏样式等的富文本格式

问题描述 投票:0回答:1

我正在构建一个chrome扩展程序,该扩展程序依赖于从页面中获取所选文本并稍后显示。

我想要复制这样的一段文本:

<span class="padding:0px;>Hello this is a link <a href="/somewhere">somewhere</a></span>

并返回此:

Hello this is a link <a href="/somewhere">somewhere</a>

即我想获取文本,以及诸如链接,LI,UL,Blockquote之类的东西,但不获取隐藏的样式等。

我当前使用的功能是:

function getSelectionText() {
var text = "";
if (window.getSelection) {

  // from here: https://gist.github.com/gleuch/2475825
  // selection range
  var range = window.getSelection().getRangeAt(0);

  // plain text of selected range (if you want it w/o html)
  var plaintext = window.getSelection();

  // document fragment with html for selection
  var fragment = range.cloneContents();

  // make new element, insert document fragment, then get innerHTML!
  var div = document.createElement('div');
  div.appendChild( fragment.cloneNode(true) );

  // your document fragment to a string (w/ html)! (yay!)
  var text = div.innerHTML;
  console.log(text);


} else if (document.selection && document.selection.type != "Control") { // think this is for IE?
text = document.selection.createRange().text;
}
return text;
}; 

这会捕获所选内容的完整节点片段,但有时会捕获周围的跨度,div,样式等。>>

之间有一些吗?即不仅是原始文本,还不是完整的HTML?

我正在构建一个chrome扩展程序,该扩展程序依赖于从页面中获取所选文本并稍后显示。我想要的是复制一段文本,如下所示:

javascript copy-paste richtext
1个回答
0
投票

如果可以枚举要删除的标签,请使用以下功能将其删除:

© www.soinside.com 2019 - 2024. All rights reserved.