Fork me on GitHub

前端常用:复制到剪切板和下载

概述

前端有 2 个常用的功能函数,其中一个是复制到剪切板,另一个是下载。我总结了一下它们的实现,记录下来,供以后开发时参考,相信对其他人也有用。

复制到剪切板

需要先安装 clipboard.js 库,然后代码如下:

import ClipboardJS from 'clipboard';

function copyToClipboard(text) {
  if (!ClipboardJS.isSupported()) {
    return Promise.reject(new Error('not supported'));
  }

  return new Promise((resolve, reject) => {
    const fakeElement = document.createElement('button');
    const clipboard = new ClipboardJS(fakeElement, {
      text: () => text,
    });

    clipboard.on('error', (e) => {
      clipboard.destroy();
      reject(e);
      console.error('Copy failed Action:', e.action);
      console.error('Copy failed Trigger:', e.trigger);
    });

    clipboard.on('success', (e) => {
      clipboard.destroy();
      resolve(e);
    });

    fakeElement.click();
  });
}

export default copyToClipboard;

下载功能

原生。代码如下:

function download(url = '') {
  if (url) {
    const fakeLink = document.createElement('a');
    fakeLink.href = url;
    fakeLink.click();
  }
}

export default download;
posted @ 2019-10-22 22:54  馒头加梨子  阅读(495)  评论(0编辑  收藏  举报