Zeroclipboard首次点击时不复制

时间:2016-02-17 15:47:30

标签: javascript jquery clipboard zeroclipboard

我有代码,它不会在第一次点击时工作,但在第二次点击时它正在工作。

$("#btnCopiar").on("click",function(){
        var clipBoardObj = new ZeroClipboard($("#btnCopiar"), {
              moviePath: "../thirdparty/ZeroClipboard.swf"
        });;
        // Create your data here to copy to the clipboard and assign to a variable name data 
         var data =   "DATA IS COMING FROM SERVER OT TEXT INPUT";
                clipBoardObj.on("copy", function (event) {                  
                var clipboard = event.clipboardData;
                  clipboard.setData( "text/plain", data );
        });

    });

<button id="btnCopiar">Copiar</button>

即使我在click事件之外初始化了剪贴板,它也无法正常工作

1 个答案:

答案 0 :(得分:0)

我想知道这是否与您编写代码的同步方式有关。

您的行var data = ...表示变量data正在从服务器调用接收其信息,该信息仅在此时发生。 (我对你删除的代码做了一些假设,以使问题更加简洁和易懂,尽管我可能错了。)这些数据需要一段时间到了。但是,在该行之后,您正在使用data函数中的clipBoardObj.on("copy", function(event) {...变量。第一次运行该功能时,data尚未到达。但是,在用户第二次单击按钮之前会经过一段时间。当发生这种情况时,第一次调用服务器可能已经有足够的时间返回,data将有一些数据。但请注意,第二次运行该功能时,它只会使用第一次调用服务器中的data,这可能是也可能是不可接受的。