我正在努力让ZeroClipboard在jQuery上下文中工作。我所使用的基本用法是在点击时使用类div
剪切每个copy
的文本。
以下jsFiddle使用稳定的ZeroClipboard v1.3.3
进行双击HTML:
<div class="copy">Click this text to copy this text</div>
<div class="copy">Or click this text to copy this text</div>
<p class="debug flash-loaded">Flash player is loaded.</p>
<p class="debug confirm-copy">Text Copied.</p>
<textarea placeholder="Use this textarea to test your clipboard"></textarea>
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();
});
});
});
是的,我知道这里有其他类似的ZeroClipboard问题,但我还没有看到一个简单的jsFiddle版本实际工作。我遇到的现有小提琴要么被弃用,要么因其他原因不再有效。
此外,ZeroClipboard在他们自己的网站http://zeroclipboard.org/上针对相同版本的演示似乎工作正常,所以我知道这是可能的。
答案 0 :(得分:5)
这是一个有效的解决方案。在fiddle我将client.on('complete'...
更改为client.on('mouseover'...
以在第一次点击之前初始化ZeroClipboard Flash文件。
$(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();
});
});
});