fix: 修复issue,COPY-01 复制直链功能 FAILED 控制台报错:Cannot read properties of undefined (reading 'writeText') 剪贴板API兼容性问题、改进剪贴板复制功能以兼容旧浏览器

添加对旧浏览器的兼容性处理,当navigator.clipboard不可用时,使用document.execCommand作为备选方案
This commit is contained in:
2026-01-07 19:47:42 +08:00
parent 136728798a
commit 1b2b158e73

View File

@@ -298,7 +298,35 @@ function copyDirectLink(appId, fileName) {
const directLink = `${API_BASE_URL}/apps/${appId}`; // 生成直链URL
// 复制到剪贴板
navigator.clipboard.writeText(directLink)
const copyToClipboard = (text) => {
if (navigator.clipboard && navigator.clipboard.writeText) {
return navigator.clipboard.writeText(text);
} else {
return new Promise((resolve, reject) => {
const textarea = document.createElement('textarea');
textarea.value = text;
textarea.style.position = 'fixed';
textarea.style.opacity = '0';
document.body.appendChild(textarea);
textarea.select();
try {
const successful = document.execCommand('copy');
document.body.removeChild(textarea);
if (successful) {
resolve();
} else {
reject(new Error('复制命令执行失败'));
}
} catch (err) {
document.body.removeChild(textarea);
reject(err);
}
});
}
};
copyToClipboard(directLink)
.then(() => {
// 显示复制成功提示
const message = document.createElement('div');