Copie le texte sélectionné dans le presse-papiers SANS l'aide de flash - doit être cross-browser
Je veux avoir un bouton qui permet de sélectionner le texte dans un textarea
et le copie dans le presse-papiers. Je n'arrive pas à trouver des solutions qui fonctionnent dans tous les navigateurs et ne pas utiliser de flash.
C'est sûrement faisable? Je l'ai vu, mais je suppose qu'ils l'utilisation de flash, j'ai vraiment envie de rester à l'écart de si possible que certaines personnes ne l'ont pas.
C'est ce que j'ai jusqu'à présent - il juste sélectionne le texte:
function copyCode() {
$("#output-code").focus();
$("#output-code").select();
}
(L'accent n'est pas strictement nécessaire)
Vous devez vous connecter pour publier un commentaire.
execCommand ("copier")
Il y a une toute nouvelle option. Il est cross-browser, mais il faudra du temps avant que tout le monde a mis à jour leur navigateur.
Il fonctionne en utilisant le
document.execCommand('copy');
fonction.Avec cette fonction, vous allez copier le sélectionner du texte. Cela permettra non seulement de travailler avec
textarea
s, mais avec chaque texte sélectionné sur la page web (comme dansspan
,p
,div
, etc.).Disponibles dans Internet Explorer 10+, Chrome 43+, Opera 29+ et Firefox 41+ (voir
execCommand
compatibilité ici).Exemple
JS:
HTML:
Unsupported Browser!
<textarea>
?Vous devez utiliser le Flash add-in vous ne souhaitez pas utiliser pour copier automatiquement le texte à la charge du client presse-papiers. Un site web automatiquement la modification du client presse-papiers sans l'aide d'active-x composants est un problème de sécurité. Notez que active-x composants sont des programmes qui s'exécutent sur la machine de l'utilisateur et, techniquement, nécessitent le consentement de l'utilisateur à être installé. Considérant que le presse-papiers est un composant du système d'exploitation, être heureux que les navigateurs web ne pas autoriser les sites web à s'emparer par défaut.
Si l'utilisateur ne dispose pas de Flash, Flash désactivé, ou active-x désactivé, alors il ou elle est probablement paranoïaque à propos de la sécurité et ne veut pas que vous vous embêter avec son clavier de toute façon. À ce stade, l'utilisateur sera utilisé pour ne pas avoir beaucoup d'automatique ou de script de base de la fonctionnalité des sites web. Il est préférable de ne pas essayer de s'opposer ouvertement aux souhaits de l'utilisateur final.
Veuillez vous référer à la suite d'un Débordement de Pile liens:
La réponse ultime, il est d'usage de Zéro presse-papiers, ce qui est une bibliothèque qui utilise une petite, invisible animation Flash et de JavaScript pour utiliser le presse-papiers de fonctionnalités, comme vous voulez. La bibliothèque est disponible ici: https://github.com/zeroclipboard/zeroclipboard Le second lien montre comment détecter si le Flash est désactivé ou n'est pas installé, ce qui permet d'afficher un message d'avertissement comme vous le feriez pour le JavaScript.
Maintenant, nous avons Clipboard.js par @zenorocha
De l'utiliser, de télécharger et d'appeler le script sur votre page.html (ou de l'installer avec la charmille ou mnp)
Instancier un nouveau déclencheur sur votre script.js
Et allez-y pour voir quelques exemples d'utilisation: http://zenorocha.github.io/clipboard.js/#usage
J'Espère que cela est utile
C'est une jolie réponse tardive, mais pour ceux à la recherche dans l'avenir et d'avoir des ennuis avec la mise en œuvre de la execCommand ("copier") de l'événement est de travailler pour les ordinateurs de bureau et les appareils mobiles.
De la croix-navigateur, Mobile-friendly et Pas besoin d'avoir des sources externes ou des programmes
Définir la CopyString() une fonction à un événement de clic sur ce que vous êtes à la recherche pour déclencher l'événement. Cet ensemble est disponible pour être utilisé à la fois sur mobile et les systèmes d'exploitation de bureau.
Explication
Vous avez besoin d'avoir deux façons d'aller sur la sélection de la chaîne de caractères à copier car aujourd'hui, la méthode pour le faire via desktop ne fonctionne pas pour les appareils mobiles. J'ai un si alors la fonction de capture si le bureau méthode a fonctionné et si non, à feu le code qui va travailler pour un appareil mobile. Cette méthode ne nécessite pas de téléchargements ou des liens nécessaires. Les deux méthodes mettez en surbrillance le texte que vous êtes à la recherche pour copier puis lance la commande copier dans votre presse-papiers, d'être suivie par l'onu-sélectionner la chaîne que vous êtes en essayant de copier. Vous pouvez mélanger le code à votre goût, mais c'est la façon de le faire.