如何将格式化文本复制到剪贴板中

时间:2015-11-05 16:41:01

标签: javascript

我知道如何将javascript变量复制到剪贴板中有一百万篇帖子。我偏爱这种做法:

window.prompt("Copy to clipboard: Ctrl+C, Enter", output);

但是,我想知道如何获得包含粗体的变量。我想要的结果是我可以将变量粘贴到单词中并将其中的一部分加粗。我试图像这样设置变量:

var output = "something <b>bold section</b> something else";

我不想用HTML输出字面意思,我想导出它,好像我选择了然后复制了以下内容:

粗体部分其他内容

我怎样才能最好地达到这个结果?

1 个答案:

答案 0 :(得分:0)

我认为you can't设置了提示窗口的样式。

recent browsers(IE9 +)的一种可行方法是使用Selection API代替prompt()技巧:

&#13;
&#13;
btn.onclick = function() {
  // create a modal
  var p = document.createElement('p');
  p.innerHTML = "something <b>bold section</b> something else";
  document.body.appendChild(p);
  // create a new range of our message
  var range = document.createRange();
  // get the textNodes
  var nodes = p.childNodes;
  // start our range at first node
  range.setStart(nodes[0], 0);
  // end it at last
  range.setEnd(nodes[nodes.length - 1], nodes[nodes.length - 1].length);
  // create a Selection object
  var sel = getSelection();
  // remove existing ranges
  sel.removeAllRanges()
  // set our new one
  sel.addRange(range);
}
&#13;
<button id="btn">show the text to copy</button>
&#13;
&#13;
&#13;