js实现复制到剪贴板,支持换行(ios安卓可用)

1,182 阅读1分钟

安卓很好实现,主要是兼容ios,不多说直接上代码。

/**
 * 复制字符串到粘贴板
 * @param {string} str 将要复制的字符串
 */
const copyString = (str) => {
  const copyDom = document.createElement("textarea");
  copyDom.value = str;
  document.body.appendChild(copyDom);
  return new Promise((resolve) => {
    setTimeout(() => {
      try {
        copyDom.select();
        document.execCommand("Copy");
        document.body.removeChild(copyDom);
        resolve(true);
      } catch (err) {
        resolve(false);
      }
    }, 100);
  });
};

支持换行,在换行的地方加上换行符 \r\n

let str = "这是复制文本\r\n这里换行";
copyString(str);

不想要文本换行,可将 textarea 改成 input