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 自体のバグです。このプル リクエストがすぐにマージされることを願っています。

今のところ、使用しているバージョンの ZeroClipboard にパッチ (8 行ほど) を手動で適用しただけです。

参考までに、これは ZeroClipboard v1.2.0-beta.1 に影響します。

于 2013-06-25T14:38:04.833 に答える