javascript - 动态加载 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 (!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' 事件(将文本复制到剪贴板)?

最佳答案

上面的代码没有任何错误。事实证明,ZeroClipboard 创建的用于捕获点击的不可见 swf 已成功创建,但位置错误。这是由于按钮通过 css 变换定位,并且是 bug in ZeroClipboard itself 。希望这个拉取请求很快就会被合并。

目前,我只是手动申请 the patch (大约 8 行)到我正在使用的 ZeroClipboard 版本。

仅供引用,这会影响 ZeroClipboard v1.2.0-beta.1

关于javascript - 动态加载 ZeroClipboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17282854/

相关文章:

javascript - ZeroClipboard 剪辑的多个实例不起作用

javascript - 在 Javascript 中使用 zclip 插件复制和粘贴格式化文本

javascript - 在动态生成的图表中为最大值添加颜色?

asp.net - Sys.WebForms 命名空间在哪里?

javascript - Joomla 1.5/CK 表格 : Need help debugging font size on javascript tooltip

javascript - 不使用 Ember Data 的 EmberJS

jquery ajax加载问题

javascript - 使用零剪贴板复制文本区域

javascript - 如何使用 JavaScript 加密 XML?

javascript - 绑定(bind)单击键和输入键以实现辅助功能