jmalcloud-view/src/utils/copy-text.js
jmal b8b0471f48 feat: 添加直链功能
- 新增直链相关 API 和工具函数
- 实现直链对话框组件
- 在文件上下文菜单中添加直链相关选项
- 优化文件上下文菜单样式和布局
2025-06-27 17:22:33 +08:00

37 lines
1.1 KiB
JavaScript

export async function copyText(text) {
if (navigator.clipboard && navigator.clipboard.writeText) {
try {
await navigator.clipboard.writeText(text);
this.$message.success('复制成功');
} catch (err) {
fallbackCopyText(text);
}
} else {
fallbackCopyText(text);
}
}
export function fallbackCopyText(text) {
const textarea = document.createElement('textarea');
textarea.value = text;
textarea.setAttribute('readonly', ''); // 防止手机端弹出键盘
textarea.style.position = 'absolute';
textarea.style.left = '-9999px';
document.body.appendChild(textarea);
// 兼容 Safari 和 Chrome 的选中文本方式
textarea.select();
textarea.setSelectionRange(0, textarea.value.length); // 额外设置范围,兼容 Safari
try {
const successful = document.execCommand('copy');
if (successful) {
Vue.prototype.$message.success('复制成功');
} else {
Vue.prototype.$message.error('复制失败');
}
} catch (err) {
console.error('execCommand 复制失败:', err);
Vue.prototype.$message.error('复制失败');
}
document.body.removeChild(textarea);
}