5180 fichiers 38.5 Mo 0 téléchargements 202 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / api / utils / CopyToClipboard.ts
CopyToClipboard.ts 1.1 Ko Télécharger le fichier
const MAX_COPY_LENGTH = 65536;

export const CopyToClipboard = async (text: string): Promise<boolean> => {
    if (typeof text !== 'string' || !text.length || (text.length > MAX_COPY_LENGTH)) return false;

    if (typeof navigator !== 'undefined' && navigator.clipboard && window.isSecureContext) {
        try {
            await navigator.clipboard.writeText(text);
            return true;
        } catch {
        }
    }

    const previousFocus = document.activeElement;
    const textarea = document.createElement('textarea');

    try {
        textarea.value = text;
        textarea.setAttribute('readonly', '');
        textarea.setAttribute('aria-hidden', 'true');
        textarea.tabIndex = -1;
        textarea.style.position = 'absolute';
        textarea.style.left = '-9999px';
        textarea.style.top = '0';
        document.body.appendChild(textarea);
        textarea.select();
        textarea.setSelectionRange(0, text.length);

        return document.execCommand('copy');
    } catch {
        return false;
    } finally {
        textarea.remove();

        if (previousFocus instanceof HTMLElement) previousFocus.focus();
    }
};
15Sujets
1Dépôts
20Membres
2En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser