browser/copyText.js

/**
 * 复制文本
 * @author xkloveme <xkloveme@gmail.com>
 * @category browser
 * @param {string} text 要复制的文本
 * @returns {Promise<boolean>} 是否复制成功
 * @alias browser_copyText
 * @example browser_copyText('123456');
 */
export default async (text) => {
  //  判断是否支持clipboard API
  if (navigator.clipboard) {
    try {
      await navigator.clipboard.writeText(text);
      console.log('复制成功');
      return true;
    } catch (error) {
      console.error(`复制失败:${error}`);
      return false;
    }
  } else {
    const selection = window.getSelection();
    if (!selection) {
      console.error('当前浏览器不支持复制');
      return false;
    }
    const input = document.createElement('input');
    document.body.appendChild(input);
    input.value = text;
    input.select();
    document.execCommand('copy');
    input.remove();
    return true;
  }
};