PROJET AUTOBLOG


Sam & Max: Python, Django, Git et du cul

Site original : Sam & Max: Python, Django, Git et du cul

⇐ retour index

Puis-je copier/coller mon brave ? 6

dimanche 23 octobre 2016 à 09:41

Dans 0bin on utilise encore flash pour faire le copier/coller, et je pense qu’on va le virer. Plus de raison de supporter les navigateurs trop vieux et après tout c’est pas grave de se voir refuser un raccourci pour copier/coller : le reste est utilisable.

Pourquoi je vous dis ça ?

Et bien parce que sebsauvage a partagé un snippet pour utiliser l’API du clipboard en JS. Et j’ai donc voulu savoir comment détecter que cette functionalité est implémentée par le navigateur en cours.

Je suis ainsi allé voir les sources de modernizr, et il implémente en fait une combinaisons de 2 techniques.

D’abord, vérifier si l’objet window a un attribut ClipboardEvent. Si oui, c’est réglé. Si non, il crée un div, on check s’il a un attribut paste. Le reste sont les hacks de compatibilité avec les très vieux navs que je ne vais pas retranscrire ici.

Donc en gros, avant de faire un copier/coller en JS, vérifiez:

function implementClipboardAPI(){
   try {
     return (!!window.ClipboardEvent || 'onpaste' in document.createElement('div'));
   } catch(e) {
     return false;
   }
}