BT

Une Bibliothèque JavaScript Poids Plume propose une Intégration du Presse-Papier sans Flash

| par David Iffland Suivre 4 Abonnés , traduit par Stéphane Wojewoda Suivre 11 Abonnés le 13 oct. 2015. Durée de lecture estimée: 2 minutes |

Zeno Rocha a publié Clipboard.js, une bibliothèque JavaScript servant uniquement à copier le texte d'une page web vers le presse-papier local de l'ordinateur.

Chaque page d'un repository GitHub présente un widget qui permet de cloner l'adresse HTTPS du repo. A côté de celui-ci, il y a un bouton permettant au clic de copier l'URL du repo dans le presse-papier de l'utilisateur. GitHub utilise une bibliothèque nommée ZeroClipboard. Le problème est que cela passe par un apple Flash invisible et Flash finit par tomber dans les oubliettes des fournisseurs de navigateurs.

Firefox a bloqué Flash par défaut il y a quelques temps, obligeant les utilisateurs à accepter explicitement l'usage de Flash pour copier une information dans le presse-papier.

Un article est apparu dans le Mozilla Hacks montrant l'usage de l'API document.execCommand(). D'après MDN, execCommand "permet à quelqu'un d'activer une commande et de manipuler le contenu d'une région éditable". Jusqu'à la version 41 de Firefox, les fonctions "copier" et "coller" sont désactivées.

Plutôt que de laisser n'importe quel code JavaScript copier sans contrôle le texte vers le presse-papier de l'utilisateur, les navigateurs limitent de tels évènements à une action initiée manuellement. Si le code essaye de copier le texte sans accord explicite de l'utilisateur, l'appel échoue.

Rocha a repris l'idée de execCommand et est allé un peu plus loin en y ajoutant également la Selection API. En combinant ces technologies, Clipboard.js propose une bibliothèque polyvalente et légère, avec une API utile pour les développeurs. Pour connecter un bouton à la bibliothèque, il suffit de déclarer l'élément déclenchant le presse-papier :

var clipboard = new Clipboard('.btn');

Alors que la bibliothèque est supportée par la plupart des navigateurs, Safari n'accepte pas encore les commandes de couper et copier.

Les développeurs de ZeroClipboard ont discuté du passage à cette méthode pour leur bibliothèque, retournant à Flash pour les fonctions non supportées. James Green, contributeur de ZeroClipboard dit de Clipboard.js : "C'est une option légère et bonne, mais je sais qu'il y aura forcément besoin de migrer ZeroClipboard sur HTML5 pour de nombreux utilisateurs".

L'API Presse-Papier HTML5 est toujours en cours d'étude avec un support partiel de la plupart des navigateurs.

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de l'industrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT