剪贴板操作

TIP

关于浏览器负责的方方面面

复制功能

clipboard API

可复制文字

async function copyPageUrl(str) {
  try {
    await navigator.clipboard.writeText(str);
    console.log('Str copied to clipboard');
  } catch (err) {
    console.error('Failed to copy: ', err);
  }
}

可复制图片

async function copyPicture(str) {
  try {
    const imgURL = '/images/generic/file.png';
    const data = await fetch(imgURL);
    const blob = await data.blob();
    await navigator.clipboard.write([
      new ClipboardItem({
        [blob.type]: blob
      })
    ]);
    console.log('Image copied.');
  } catch (err) {
    console.error(err.name, err.message);
  }
}

Document.execCommand() 方法

最传统的操作剪贴板方法

通过代码选中执行选中,并复制

function copy() {
  let copyText = document.querySelector("#input");
  copyText.select();
  document.execCommand("copy");
}

粘贴功能

clipboard API

和复制同理返回一个promise

async function getClipboardContents() {
  try {
    const text = await navigator.clipboard.readText();
    console.log('Pasted content: ', text);
  } catch (err) {
    console.error('Failed to read clipboard contents: ', err);
  }
}

Document.execCommand() 方法

function paste() {
  let copyText = document.querySelector("#output");
  copyText.focus();
  document.execCommand("paste");
}

参考

最近更新: