fix: 修复issue,COPY-01 复制直链功能 FAILED 控制台报错:Cannot read properties of undefined (reading 'writeText') 剪贴板API兼容性问题、改进剪贴板复制功能以兼容旧浏览器
添加对旧浏览器的兼容性处理,当navigator.clipboard不可用时,使用document.execCommand作为备选方案
This commit is contained in:
30
script.js
30
script.js
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user