使用ZeroClipboard - 成功调用'load'
回调,但点击'copy-button'
元素不会导致'complete'
回调触发。
JS :
var script = document.createElement('script'), loaded;
script.setAttribute('src', "/static/ZeroClipboard.js");
script.onreadystatechange = script.onload = function() {
if (!loaded) {
console.log("Executing ZeroClipboard load callback");
var clip = new ZeroClipboard(
document.getElementById('copy-button'),
{moviePath: '/static/ZeroClipboard.swf',
allowScriptAccess: "always"} // allow cross-domain swf load
);
clip.on('complete', function(client, args) {
console.log('ZeroClipboard: copied text to clipboard: ' + args.text );
});
clip.on('load', function(client) {
console.log('ZeroClipboard: clip loaded');
});
}
loaded = true;
};
document.getElementsByTagName('head')[0].appendChild(script);
HTML :
<button class="embed-copy" id="copy-button" data-clipboard-text="some old copied text">Copy</button>
如何动态加载ZeroClipboard并成功触发'complete'
事件(将文本复制到剪贴板)?
答案 0 :(得分:0)
上述代码中没有任何内容是错误的。事实证明,ZeroClipboard为捕获点击而创建的不可见的swf正在成功创建,但处于错误的位置。这是因为按钮通过css转换定位,并且是bug in ZeroClipboard itself。希望这个拉动请求很快就会合并。
目前,我只是手动将the patch(8行左右)应用到我正在使用的ZeroClipboard版本。
供参考,这会影响ZeroClipboard v1.2.0-beta.1