BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

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

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

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

Contenu Éducatif

BT