J'ai trouvé de nombreuses solutions pour copier dans le presse-papiers, mais elles sont toutes soit avec flash, soit côté sites Web. Je recherche une méthode de copie dans le presse-papier automatiquement, sans flash et côté utilisateur, c'est pour les scripts utilisateur et bien sûr pour les navigateurs croisés.
javascript
jquery
clipboard
Soleil noir
la source
la source
Réponses:
Sans flash, ce n'est tout simplement pas possible dans la plupart des navigateurs. Le presse-papiers de l'utilisateur est une ressource de sécurité car il peut contenir des éléments tels que des mots de passe ou des numéros de carte de crédit. Ainsi, à juste titre, les navigateurs n'autorisent pas l'accès Javascript (certains l'autorisent avec un avertissement indiquant que l'utilisateur a confirmé, ou avec un code Javascript signé, mais rien de tout cela n'est inter-navigateur).
la source
J'avais essayé la solution flash et je n'aimais pas trop. Trop complexe et trop lent. Ce que j'ai fait, c'est créer une zone de texte, y mettre les données et utiliser le comportement "CTRL + C" du navigateur.
La partie javascript jQuery:
La partie HTML:
<textarea id="textArea1"></textarea>
Maintenant, mettez ce que vous voulez copier dans 'METTRE LE TEXTE À COPIER ICI. PEUT ÊTRE UNE FONCTION. '' zone. Fonctionne bien pour moi moi. Il vous suffit de créer une combinaison CTRL + C. Le seul inconvénient est que vous allez avoir une zone de texte laide affichée sur votre site. Si vous utilisez le style = "display: none", la solution de copie ne fonctionnera pas.
la source
e.metaKey
la comparaison keydown, mais pour une raison quelconque, l'action de copie n'est pas déclenchée. Voir ce violon: jsfiddle.net/gableroux/gta67/1clipboard.js vient d'être publié pour copier dans le presse-papiers sans avoir besoin de Flash
Voyez-le en action ici> http://zenorocha.github.io/clipboard.js/#example-action
la source
C'est enfin là!(Tant que vous ne supportez pas Safari ou IE8 ... -_-)
Vous pouvez désormais gérer les actions du presse-papiers sans Flash. Voici la documentation pertinente:
https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand
https://developers.google.com/web/updates/2015/04/cut-and-copy-commands?hl=en
https://msdn.microsoft.com/en-us/library/hh801227%28v=vs.85%29.aspx#copy
la source
En attendant avec impatience le support Xbrowser de l' API Clipboard ...
Cela fonctionnera à merveille dans Chrome, Firefox, Edge, IE
IE ne demandera à l'utilisateur qu'une seule fois d'accéder au Presse-papiers.
Safari (5.1 au moment de l' écriture) ne prend pas en charge
execCommand
decopy/cut
Tous les navigateurs (à l'exception de Firefox qui n'est capable de gérer que le type mime
"plain/text"
dans la mesure où j'ai testé) n'ont pas implémenté l' API Clipboard . Ie, en essayant de lire l'événement du presse-papiers dans Chrome à l'aide dejette: Uncaught TypeError: Constructeur illégal
La meilleure ressource de l' incroyable désordre qui se passe entre les navigateurs et le Presse-papiers peut être vue ici (caniuse.com) (→ Suivez les commentaires sous "Notes" ).
MDN dit que le support de base est "(OUI)" pour tous les navigateurs, ce qui est inexact car on s'attendrait au moins à ce que l'API fonctionne, du tout.
la source
Vous pouvez utiliser un presse-papiers local sur la page HTML. Cela vous permet de copier / couper / coller du contenu DANS la page HTML, mais pas depuis / vers des applications tierces ou entre deux pages HTML.
Voici comment vous pouvez écrire une fonction personnalisée pour ce faire (testée dans Chrome et Firefox):
Voici le FIDDLE qui montre comment vous pouvez faire cela.
Je vais également coller le violon ici pour référence.
HTML
JS
la source
window
. Ce n'est pas un presse-papiers disponible pour le système d'exploitation et un autre onglet du navigateur. De plus, la sélection peut être facilement effectuée en utilisantselect()
et que simplementwindow.getSelection()
document.execCommand('copy')
fera ce que vous voulez. Mais il n'y avait pas d'exemples directement utilisables dans ce fil sans cruft, alors le voici:la source
Il n'y a pas moyen de contourner, vous devez utiliser le flash. Il existe un plugin JQuery appelé jquery.copy qui permet de copier-coller entre les navigateurs à l'aide d'un fichier flash (swf). Ceci est similaire au fonctionnement du surligneur de syntaxe sur mon blog.
Une fois que vous avez référencé le fichier jquery.copy.js, tout ce que vous avez à faire pour pousser les données dans le presse-papiers est d'exécuter ce qui suit:
Sympa et facile;)
la source