你可以在div的内容上使用document.execCommand('copy')吗?

时间:2017-04-28 19:35:04

标签: javascript jquery

如果我手动复制html表格,我可以将其粘贴到Google文档中并保留格式(看起来像一张表格)。

如何使用按钮以编程方式复制内容,并粘贴为html表?像下面这样......

evar copydeck = $("<div>").html(htmlToInsert);
$('body').append(copydeck);
copydeck.select();
document.execCommand('copy');
copydeck.remove();

以上代码不起作用......但这样做:

copydeck = $("<textarea>").val(this.list.join("\r\n"));
$('body').append(copydeck);
copydeck.select();
document.execCommand('copy');
copydeck.remove();

我想这是因为元素必须是可选择的 - 比如输入或htmlarea字段。但是它们不能保存html(或者它只是纯文本,而不是html)。

复制和粘贴HTML的方法吗?

1 个答案:

答案 0 :(得分:6)

是!

   function copy() {
      var target = document.getElementById('my-div');
      var range, select;
      if (document.createRange) {
        range = document.createRange();
        range.selectNode(target)
        select = window.getSelection();
        select.removeAllRanges();
        select.addRange(range);
        document.execCommand('copy');
        select.removeAllRanges();
      } else {
        range = document.body.createTextRange();
        range.moveToElementText(target);
        range.select();
        document.execCommand('copy');
      }
    }
  <div id="my-div" style="border:1px dashed #999; color:#666; background:#EEE; padding:2px 5px; margin:10px 0;">
    Hello stackoverflow!))
  </div>
  <div>
    <input onclick="copy()" type="button" value="Copy">
  </div>

相关问题