JS实现复制粘贴

一个通用的复制粘贴

function copy2ClipBoard(content) {
  const textArea = document.createElement("textarea");
  document.body.appendChild(textArea);
  textArea.value = content;
  textArea.style.position = "fix";
  textArea.style.top = "0px";
  textArea.style.left = "0px";
  textArea.focus();
  textArea.select();
  document.execCommand("copy");
  document.body.removeChild(textArea);
}

所以对于input/textarea这样的HTML元素我们复制其中输入的值可以直接调用他们的select方法选中其中的文本,然后执行document.execCommand('copy')就可以复制到剪贴板

但是需要注意文本域不能是隐藏的

clipboardData 对象

提供了对剪贴板对象的访问

兼容问题:出于安全性问题,只有 IE 支持!!!
提供了以下三个方法
  • clearData(sDataFormat) 删除剪贴板中指定格式的数据。

  • setData(sDataFormat, sData) 给剪贴板赋予指定格式的数据。返回 true 表示操作成功。

  • getData(sDataFormat) 从剪贴板获取指定格式的数据。

function copy2ClipBoard(content) {
  // 先清除之前的数据
  window.clipboardData.clear("Text");
  window.clipboardData.setData("Text", content);
  // 然后就可以直接去粘贴了
}

你可能感兴趣的:(JS实现复制粘贴)