瀏覽器復(fù)制插件zeroclipboard使用指南

字號:


    ZeroClipboard 是國外大神開發(fā)的一個用于剪貼板復(fù)制的 JS 插件,它是基于 Flash 來實現(xiàn)跨瀏覽器的復(fù)制功能的。當(dāng)我們使用 ZeroClipboard 的時候,它會悄悄隱藏一個小小的 Flash 影片(swf),不會對我們的用戶界面造成影響。我們只需要借助它實現(xiàn)復(fù)制功能就行了。
    一個簡單例子:
    <html>
     <body>
      <button id="copy-button" data-clipboard-text="Copy Me!">Copy to Clipboard</button>
      <script src="~/Scripts/jquery-1.7.1.js"></script>
      <script src="~/Scripts/ZeroClipboard.js"></script>
     </body>
     <script>
     var client = new ZeroClipboard( $("#copy-button") );
      client.on('ready', function (event) {
          client.on('copy', function (event) {
            event.clipboardData.setData('text/plain', event.target.innerHTML);
            alert("復(fù)制成功");
          });
          client.on('aftercopy', function (event) {
            //復(fù)制之后的操作,如果不是自動在本頁面粘貼,請把此事件備注掉
            console.log('Copied text to clipboard: ' + event.data['text/plain']);
          });
        });
        client.on('error', function (event) {
          //出錯的時候該干嘛
          // console.log( 'ZeroClipboard error of type "' + event.name + '": ' + event.message );
          ZeroClipboard.destroy();
        });
     </script>
    </html>
    2.2版本需要引用jquery,要習(xí)慣把js代碼寫到頁面底部,經(jīng)測試,發(fā)現(xiàn)此代碼不支持IE10/11,以下提供兼容IE的function,替換js部分即可
    <script>
        $(function() {
          var text="取文本";
          var msg="復(fù)制成功";
          clipboard("btn_copy",text,msg);
        });
        //參數(shù)說明
        //button:按鈕id
        //text:要復(fù)制的文本
        //msg:復(fù)制成功提示文本
        function clipboard(button,text,msg) {
          if (window.clipboardData) {    //for ie
            var copyBtn = document.getElementById(button);
            copyBtn.onclick = function () {
              window.clipboardData.setData('text', text);
              alert(msg);
            }
          } else {
            var client = new ZeroClipboard($("#" + button));
            client.on('ready', function (event) {
              client.on('copy', function (event) {
                event.clipboardData.setData("text/plain", text);
                alert(msg);
              });
            });
            client.on('error', function (event) {
              ZeroClipboard.destroy();
            });
          }
          return false;
        }
      </script>
    最后,需要注意的是不要在本地調(diào)度,你會發(fā)現(xiàn)不會生效,因為Flash的安全限制