L'API du presse-papiers asynchrones offre une amélioration significative par rapport à la méthode document.execCommand()
obsolète pour accéder au presse-papiers du système d'exploitation en JavaScript. Alors que document.execCommand()
souffre de problèmes de performances, de support de navigateur incohérent et d'incohérences d'autorisation, l'API du presse-papiers fournit une alternative plus efficace et robuste. Bien que toutes les fonctionnalités ne soient pas encore prises en charge universellement dans tous les navigateurs, sa facilité d'utilisation et sa sécurité améliorée en font la méthode préférée.
Avantages clés de l'API du presse-papiers:
document.execCommand()
. Pourquoi accéder au presse-papiers?
De nombreuses applications bénéficient de l'accès au presse-papiers programmatique. Bien que les développeurs connaissent les raccourcis clavier (Ctrl / CMD C, X, V), de nombreux utilisateurs ne le sont pas. La fourniture de commandes visuelles de coupe / copie / coller améliore l'accessibilité. De plus, les actions post-clou de bord comme les ajustements de formatage sont simplifiées.
Considérations de sécurité:
Le presse-papiers programmatique présente des risques de sécurité. Pour atténuer ces:
clipboard-read
et / ou clipboard-write
autorisation: <iframe src="childpage.html" allow="clipboard-read; clipboard-write"></iframe>
Détection des fonctionnalités:
Vérifiez la disponibilité de l'API en utilisant:
if (navigator.clipboard) { console.log('Clipboard API available'); }
Cependant, cela ne garantit pas la prise en charge complète des fonctionnalités. Les vérifications approfondies sont cruciales, car le support du navigateur varie.
Copie de texte et coller:
Les opérations de texte de base sont simples:
// Copy text await navigator.clipboard.writeText('This text is now on the clipboard'); // Get text let text = await navigator.clipboard.readText();
La gestion des erreurs et la détection de support nécessitent un code supplémentaire. (Voir l'exemple de code sur github).
Copie et coller des données:
Au-delà du texte, les méthodes read()
et write()
gèrent divers types de données, tels que les images. La copie implique l'utilisation de ClipboardItem
avec des données blob
(souvent à partir de fetch()
ou canvas.toBlob()
):
<iframe src="childpage.html" allow="clipboard-read; clipboard-write"></iframe>
Le collage est plus complexe, nécessitant une itération à travers ClipboardItem
objets pour trouver le format souhaité. (Voir l'exemple de code sur github).
Couper, copier et coller les événements:
Les événements cut
, copy
et paste
déclenchent des actions du presse-papiers utilisateur. Les gestionnaires d'événements peuvent les intercepter, modifiant les données à l'aide de l'objet clipboardData
. Par exemple, au texte copié en majuscules:
if (navigator.clipboard) { console.log('Clipboard API available'); }
(voir l'exemple de code sur github pour un gestionnaire d'événements de pâte).
Conclusion:
L'API du presse-papiers est une solution moderne et robuste pour l'interaction du presse-papiers en javascript. Bien que nouveau, son large soutien et son amélioration de la sécurité en font l'approche recommandée, mieux mise en œuvre comme une amélioration progressive. Les exemples de code fournis offrent un point de départ solide.
Questions fréquemment posées (FAQ):
navigator.clipboard
. writeText()
, readText()
, write()
, read()
. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!