Javascript 动态加载零剪贴板

Javascript 动态加载零剪贴板,javascript,ajax,zeroclipboard,Javascript,Ajax,Zeroclipboard,使用ZeroClipboard-成功调用'load'回调,但单击'copy-button'元素不会触发'complete'回调 JS: var script = document.createElement('script'), loaded; script.setAttribute('src', "/static/ZeroClipboard.js"); script.onreadystatechange = script.onload = function() { if (!loade

使用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);
<button class="embed-copy" id="copy-button" data-clipboard-text="some old copied text">Copy</button>
HTML

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);
<button class="embed-copy" id="copy-button" data-clipboard-text="some old copied text">Copy</button>
复制

如何动态加载ZeroClipboard并成功触发
'complete'
事件(将文本复制到剪贴板)?

上述代码中没有任何错误。事实证明,ZeroClipboard为捕获点击而创建的不可见swf创建成功,但位置错误。这是因为按钮是通过css转换定位的,并且是一个很好的选择。希望这个请求能很快被合并

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


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

您使用的是哪个版本?我似乎也遇到了同样的问题。你用了什么补丁?您提到了一个修复程序,但答案中没有代码向其他人显示您实现了什么。我编辑了我的答案,以包含指向我用来修复此问题的修补程序的链接。也联系