1

使用 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'事件(将文本复制到剪贴板)?

4

1 回答 1

0

上面的代码中没有任何错误。事实证明,ZeroClipboard 为捕获点击而创建的不可见 swf 已成功创建,但位置错误。这是由于按钮是通过 css 转换定位的,并且是ZeroClipboard 本身的一个错误。希望这个拉取请求将很快被合并。

现在,我只是手动将补丁(大约 8 行)应用到我正在使用的 ZeroClipboard 版本。

作为参考,这会影响 ZeroClipboard v1.2.0-beta.1

于 2013-06-25T14:38:04.833 回答