Content deleted Content added
Polygnotus (talk | contribs) No edit summary |
Polygnotus (talk | contribs) No edit summary |
||
Line 52:
function copyToClipboard(text) {
return new Promise((resolve, reject) => {
//
.then(() => resolve(true))
console.log("Clipboard API failed, trying execCommand...", err);
textarea.style.position = 'fixed';▼
// Fall back to execCommand method▼
textarea.style.top = '10px';▼
textarea.style.padding = '0';▼
textarea.style.boxShadow = 'none';▼
textarea.style.background = 'transparent';▼
textarea.style.zIndex = '999999';▼
// Create a completely invisible temporary textarea
textarea.
textarea.select();▼
try {▼
const success = document.execCommand('copy');▼
▲ textarea.style.position = 'fixed';
textarea.setAttribute('readonly', ''); // Prevent mobile keyboard from appearing
if (navigator.userAgent.indexOf('Firefox') !== -1 ||
// Special handling for Firefox on Linux/Pop OS
if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {
const range = document.createRange();
} else {▼
▲ textarea.select();
}
▲ try {
▲ const success = document.execCommand('copy');
document.body.removeChild(textarea);
▲ // Try the Clipboard API as fallback
▲ navigator.clipboard.writeText(text).then(() => {
▲ document.body.removeChild(textarea);
resolve(true);
}
} catch (err)
▲ const visibleTextarea = document.createElement('textarea');
▲ const closeButton = document.createElement('button');
▲ };
▲ visibleTextarea.focus();
▲ resolve(true);
▲ });
▲ } else {
document.body.removeChild(textarea);
reject(
}
▲ } catch (err) {
▲ document.body.removeChild(textarea);
▲ reject(err);
}
});
|