将表格单元格复制到剪贴板Javascript

时间:2015-05-12 09:43:55

标签: javascript jquery html-table

来自未来的PEW PEW:

https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API

另见:How do I copy to the clipboard in JavaScript?

  

原始问题:

我希望能够在用户点击时复制表格单元格值。

我试过这个:



function copyToClipboard(text) {

}

var selectTableCells = document.querySelector('td');

selectTableCells.addEventListener('click', function(event) {
  console.log("You copied: ", selectTableCells);
  copyToClipboard(selectTableCells.innerHTML);
});

td,
th {
  border: 1px solid #ccc;
  display: block;
  background-color: #ccc;
  width: 160px;
}

td {
  cursor: pointer;
  text-align: center;
}

<table id="table" class="responsive" style="width:1000px;">
  <tbody>
    <thead>
      <tr>
        <th>Field Type</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="cell1">Click me to copy!</td>
      </tr>
    </tbody>
</table>
</div>
<input type="text" style="height:50px;width:300px;" placeholder="For proof of concept. Try to paste here">
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

对未来的答案(2020年):


现在有一个剪贴板API

此代码段从剪贴板中获取文本,并将其附加到在类编辑器中找到的第一个元素。由于readText()(和read(),如果剪贴板不是文本,则返回一个空字符串,因此此代码是安全的。

navigator.clipboard.readText().then(
    clipText => document.querySelector(".editor").innerText += clipText);

方法:

注意:所有方法都返回承诺

read()

var getClipboardData = navigator.clipboard.read();

剪贴板接口的read()方法请求剪贴板内容的副本,并返回一个Promise。与readText()不同,read()方法可以返回任意数据,例如图像。此方法还可以返回文本。

readText()

var getClipboardText = navigator.clipboard.readText();

如果剪贴板为空,不包含文本或不包含表示剪贴板内容的DataTransfer对象之间的文本表示,则返回空字符串。

write()

var setClipboardData = navigator.clipboard.write(data);

如果剪贴板无法完成剪贴板访问,则承诺将被拒绝。

writeText()

var setClipboardText = navigator.clipboard.writeText(newClipText); 

如果呼叫者没有写剪贴板的权限,则诺言将被拒绝。


接口:

Clipboard Secure context

提供用于在系统剪贴板中读写文本和数据的界面。规范将此称为“异步剪贴板API”。

ClipboardEvent Secure context

表示事件,该事件提供与剪贴板的修改有关的信息,即剪切,复制和粘贴事件。规范将此称为“剪贴板事件API”。

ClipboardItem Secure context

表示单一项目格式,用于读取或写入数据。


有关更多信息,请参见Clipboard API

答案 1 :(得分:0)

尝试此属性contenteditable =&#34; true&#34;并尝试按照此链接复制剪贴板内容, execute ctrl + c