User:Polygnotus/Scripts/CategoryToClipboard.js: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
Line 56:
textarea.value = text;
// Make the textarea invisiblevisible butto presentensure init theworks DOMon Firefox/Pop OS
textarea.style.position = 'fixed';
textarea.style.opacitytop = '010px';
textarea.style.left = '10px';
textarea.style.width = '1px';
textarea.style.height = '1px';
textarea.style.padding = '0';
textarea.style.border = 'none';
textarea.style.outline = 'none';
textarea.style.boxShadow = 'none';
textarea.style.background = 'transparent';
textarea.style.zIndex = '999999';
}
document.body.appendChild(textarea);
// SelectFocus and copyselect the text
} else {textarea.focus();
textarea.select();
try {
// TryUse thedocument.execCommand modernfirst clipboardas APIit's firstmore reliable on Firefox/Linux
ifconst (navigator.clipboardsuccess &&= navigatordocument.clipboard.writeTextexecCommand('copy') {;
resolve(true);
if (success) {
const success = document.execCommandbody.removeChild('copy'textarea);
resolve(true);
} else if (navigator.clipboard && navigator.clipboard.writeText) {
// UseTry execCommandthe Clipboard API as fallback
navigator.clipboard.writeText(text).then(() => {
document.body.removeChild(textarea);
resolve(true);
}).catch(err => {
// Fall back to document.execCommand
const success = document.execCommand('copy');
document.body.removeChild(textarea);
if (success) {
// Show the copy resolve(true);text in a visible textarea as last resort
}const elsevisibleTextarea {= document.createElement('textarea');
visibleTextarea.value = reject(new Error('Unable to copy to clipboard'))text;
}visibleTextarea.style.position = 'fixed';
visibleTextarea.style.top = '50px';
visibleTextarea.style.left = '50px';
visibleTextarea.style.width = '80%';
visibleTextarea.style.height = '300px';
visibleTextarea.style.zIndex = '999999';
const successcloseButton = document.execCommandcreateElement('copybutton');
closeButton.textContent = 'Close';
closeButton.style.position = 'fixed';
closeButton.style.top = '360px';
closeButton.style.left = '50px';
closeButton.style.zIndex = '999999';
closeButton.onclick = () => {
document.body.removeChild(visibleTextarea);
// Fall back to document.execCommandbody.removeChild(closeButton);
};
document.body.appendChild(visibleTextarea);
document.body.appendChild(closeButton);
visibleTextarea.focus();
visibleTextarea.select();
resolve(true);
});
} else {
// Use execCommand as fallback
const success = document.execCommand('copy');
document.body.removeChild(textarea);
ifreject(new Error(success)'Unable {to copy to clipboard'));
resolve(true);
} else {
reject(new Error('Unable to copy to clipboard'));
}
}
} catch (err) {