You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

clipboard.js 1.2 kB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
1234567891011121314151617181920212223242526272829303132
  1. export default async function initClipboard() {
  2. const els = document.querySelectorAll('.clipboard');
  3. if (!els || !els.length) return;
  4. const { default: ClipboardJS } = await import(/* webpackChunkName: "clipboard" */'clipboard');
  5. const clipboard = new ClipboardJS(els);
  6. clipboard.on('success', (e) => {
  7. e.clearSelection();
  8. $(`#${e.trigger.getAttribute('id')}`).popup('destroy');
  9. e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-success'));
  10. $(`#${e.trigger.getAttribute('id')}`).popup('show');
  11. e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-original'));
  12. $('body')
  13. .toast({
  14. message: '复制成功!',
  15. showProgress: 'bottom',
  16. showIcon: 'check circle',
  17. class: 'success',
  18. position: 'top right',
  19. compact: false,
  20. })
  21. });
  22. clipboard.on('error', (e) => {
  23. $(`#${e.trigger.getAttribute('id')}`).popup('destroy');
  24. e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-error'));
  25. $(`#${e.trigger.getAttribute('id')}`).popup('show');
  26. e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-original'));
  27. });
  28. }