Comment puis-je obtenir une configuration simple de copie à presse-papiers de ZeroClipboard fonctionnant dans jQuery sur jsFiddle en un seul clic?

J’ai du mal à faire fonctionner ZeroClipboard dans un contexte jQuery. L’utilisation de base que je suis après consiste à couper le texte de chaque div avec la copy classe au clic.

Le jsFiddle suivant fonctionne en double-clic avec la version stable ZeroClipboard v1.3.3

http://jsfiddle.net/bEQ6R/

html:

 
Click this text to copy this text
Or click this text to copy this text

Flash player is loaded.

Text Copied.

js:

 $(document).ready(function() { ZeroClipboard.config({ moviePath: 'http://zeroclipboard.org/javascripts/zc/ZeroClipboard_1.3.2.swf',debug: true }); var client = new ZeroClipboard($('.copy')); client.on('load', function(client) { $('.flash-loaded').fadeIn(); client.on('complete', function(client, args) { client.setText($(this).text()); // client.setText('Manually Set Text to This instead of the contents of the div'); console.log(client); $('.confirm-copy').fadeIn(); }); }); }); 

Oui, je comprends qu’il existe d’autres questions similaires à ZeroClipboard ici, mais je n’ai pas encore vu une version simple de jsFiddle fonctionner. Les violons existants que j’ai rencontrés sont obsolètes ou ne fonctionnent plus pour une autre raison.

De plus, la démo de ZeroClipboard sur son propre site http://zeroclipboard.org/ pour la même version semble bien fonctionner, alors je sais que c’est possible.

Voici une solution de travail. Sur le violon, j’ai changé client.on('complete'... en client.on('mouseover'... pour initialiser le fichier flash ZeroClipboard avant le premier clic.

 $(document).ready(function() { ZeroClipboard.config({ moviePath: 'http://zeroclipboard.org/javascripts/zc/ZeroClipboard_1.3.2.swf',debug: true }); var client = new ZeroClipboard($('.copy')); client.on('load', function(client) { $('.flash-loaded').text('Flash player loaded at ' + $.now()).fadeIn(); client.on('mouseover', function(client, args) { client.setText($(this).text()); $('.confirm-copy').text('text copied at ' + $.now()).fadeIn(); }); }); });