27 lines
709 B
TypeScript
27 lines
709 B
TypeScript
import { useClipboard } from '@vueuse/core';
|
|
|
|
const { copy, isSupported } = useClipboard();
|
|
|
|
export async function handleCopy(source?: string) {
|
|
if (!isSupported) {
|
|
window.$message?.error('您的浏览器不支持 Clipboard API');
|
|
return;
|
|
}
|
|
|
|
if (!source) {
|
|
return;
|
|
}
|
|
|
|
if (navigator.clipboard && window.isSecureContext) {
|
|
await copy(source);
|
|
} else {
|
|
const range = document.createRange();
|
|
range.selectNode(document.getElementById('tokenDetailInput')!);
|
|
const selection = window.getSelection();
|
|
if (selection?.rangeCount) selection.removeAllRanges();
|
|
selection?.addRange(range);
|
|
document.execCommand('copy');
|
|
}
|
|
window.$message?.success('复制成功');
|
|
}
|