粘贴板复制

document.addEventListener("copy", (e) => {
  e.preventDefault();
  e.clipboardData.setDate("text/plain", " 不准复制");
});
function copyText(text) {
  if (navigator.clipboard) {
    copyText = (text) => {
      navigator.clipboard.writeText(text);
    };
    copyText(text);
  } else {
    copyText = (text) => {
      const input = document.createElement("input");
      input.setAttribute("value", text);
      document.body.appendChild(input);
      input.select();
      document.execCommand("copy");
      document.body.removeChild(input);
    };
    copyText(text);
  }
}

function createCopyText() {
  if (navigator.clipboard) {
    return (text) => {
      navigator.clipboard.writeText(text);
    };
  } else {
    return (text) => {
      const input = document.createElement("input");
      input.setAttribute("value", text);
      document.body.appendChild(input);
      input.select();
      document.execCommand("copy");
      document.body.removeChild(input);
    };
  }
}
const copyText = createCopyText();

复制文本

const copyText = (text) => {
  // clipboardData 在页面上将需要的东西复制到剪贴板上
  const clipboardData = window.clipboardData;
  if (clipboardData) {
    clipboardData.clearData();
    clipboardData.setData("Text", text);
    return true;
  } else if (document.execCommand) {
    // 注意 document.execCommand 已弃用 但是有些浏览器依旧支持 用的时候记得看兼容情况
    // 通过创建 dom 元素,去把要复制的内容拿到
    const el = document.createElement("textarea");
    el.value = text;
    el.setAttribute("readonly", "");
    el.style.position = "absolute";
    el.style.left = "-9999px";
    document.body.appendChild(el);
    el.select();
    // 拷贝当前内容到剪贴板
    document.execCommand("copy");
    // 删除 el 节点
    document.body.removeChild(el);
    return true;
  }
  return false;
};
copyText("hello!"); // ctrl + v = copyText  | true
Last Updated:
Contributors: 刘荣杰