index.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { message } from 'ant-design-vue';
  2. /**
  3. * 将文字 复制到粘贴板
  4. * @param text
  5. */
  6. export function copyToClipboard(text: string): void {
  7. if (text.indexOf('-') !== -1) {
  8. const arr = text.split('-');
  9. text = arr[0] + arr[1];
  10. }
  11. const textArea = document.createElement('textarea');
  12. textArea.style.position = 'fixed';
  13. textArea.style.top = '0';
  14. textArea.style.left = '0';
  15. textArea.style.width = '2em';
  16. textArea.style.height = '2em';
  17. textArea.style.padding = '0';
  18. textArea.style.border = 'none';
  19. textArea.style.outline = 'none';
  20. textArea.style.boxShadow = 'none';
  21. textArea.style.background = 'transparent';
  22. textArea.value = text;
  23. document.body.appendChild(textArea);
  24. textArea.select();
  25. try {
  26. const successful = document.execCommand('copy');
  27. if (successful) {
  28. message.success('复制成功!');
  29. } else {
  30. message.error('该浏览器不支持点击复制到剪贴板');
  31. }
  32. } catch (err) {
  33. message.error('该浏览器不支持点击复制到剪贴板');
  34. }
  35. document.body.removeChild(textArea);
  36. }