Si vous souhaitez copier du contenu dans le presse-papiers via JS, ce n'est pas difficile, mais si vous envisagez la compatibilité du navigateur, cela devient un peu gênant. . Je n'expliquerai pas le principe en détail, parlons de la façon de le mettre en œuvre.
Par exemple, mon code HTML est le suivant:
La copie de code est la suivante:
<div>
<code rel = "1"> <span id = "id_1"> Contenu à copier1 </span> </code>
<code rel = "2"> <span id = "id_2"> Contenu à copier 2 </span> </code>
<code rel = "3"> <span id = "id_3"> Contenu à copier3 </span> </code>
</div>
Il y a deux fichiers JS au total, il n'est donc pas nécessaire de mentionner jQuery, puis jQuery-zclip.js et zeroclipboard.swf. /www.steamdev.com/zclip /
Le js qui génère le bouton de copie est le suivant
La copie de code est la suivante:
<script type = "text / javascript">
$ (function () {
$ ('code'). Chaque (fonction () {
var self = $ (this);
var id = self.attr ('rel');
var copy = $ ('<span> copy </span>'). APPENDTO (self) .zclip ({
'path': '/ static / admin / js / zeroclipboard.swf', // écrivez votre propre adresse ici
'aftercopy': function () {
alert ('Obtenez l'adresse du code correspondant a été copiée dans le presse-papiers, vous pouvez utiliser Ctrl + V pour coller');
},
'copy': function () {
return $ ('# id _' + id) .text (); // note ici, si div span, etc. Utilisez du text (), si vous saisissez, utilisez val (), cette prise en charge n'est pas très bonne
}
});
});
});
</cript>
De cette façon, vous pouvez copier le temps entre les navigateurs. J'ai découvert plus tard que Flash a été généré, mais il n'était pas dans l'emplacement du texte. J'ai vérifié beaucoup d'informations, et certaines personnes ont dit que vous deviez changer le code, mais ensuite je l'ai changé et c'était OK
Le code qui doit être modifié est le suivant
La copie de code est la suivante:
GetDomObjectPosition: fonction (obj, stopObj) {
// Obtenez des coordonnées absolues pour l'élément DOM
var info = {
à gauche: 0,
en haut: 0,
Largeur: OBJ.Width?
hauteur: obj.height?
};
if (obj && (obj! = stopObj)) {
//info.left + = obj.offsetleft;
//info.top + = obj.offsetTop;
jpos = $ (obj) .position ();
info.left + = jpos.left;
info.top + = jpos.top;
}
retour des informations;
}
En fait, cela a quelque chose à voir avec le principe de ce plugin, il couvre donc un flash transparent sur le bouton.