2013-02-25 111 views

回答

1

jQuery ZeroClipBoard很可能是你在找什麼。 ZeroClipBoard使用不可見的Adobe Flash電影來實現剪貼板功能。我們在我們的項目中使用它,它工作得很好。

這很容易實現。下載一個Flash文件並將其包含在腳本文件夾中,然後按照以下步驟操作。

  1. 加入jQuery和zClip到您的文檔:

    <script type="text/javascript" src="js/jquery.js"></script> 
    <script type="text/javascript" src="js/jquery.zclip.js"></script> 
    
  2. 裏面一個< SCRIPT>塊,附加zClip的元素,這將成爲您的 「複印按鈕」:

    $(document).ready(function(){ 
        $('a#copy-description').zclip({ 
         path:'js/ZeroClipboard.swf', 
         copy:$('p#description').text() 
        }); 
        // The link with ID "copy-description" will copy 
        // the text of the paragraph with ID "description" 
        $('a#copy-dynamic').zclip({ 
         path:'js/ZeroClipboard.swf', 
         copy:function(){return $('input#dynamic').val();} 
        }); 
        // The link with ID "copy-dynamic" will copy the current value 
        // of a dynamically changing input with the ID "dynamic" 
    }); 
    
+0

是否與http://code.google.com/p/zeroclipboard/ – DotnetSparrow 2013-02-25 14:33:20

+0

一樣都使用隱形Flash影片作爲剪貼板功能,我不確定它們是否相同。但是這很容易實現,而且非常可靠。 – ssilas777 2013-02-25 14:38:10

+0

嗨@ssilas:代碼工作得很好。我有一個問題。我在jQuery UI標籤中使用zclip。它在第一個選項卡中處於活動狀態,但它在第二個非活動狀態的選項卡中不起作用。任何解決方案? – DotnetSparrow 2013-02-26 11:26:22

0

The documentation有一個完整的例子來說明如何設置它。如果我們假設你使用Razor

<html> 
    <body> 
     <button id="copy-button" data-clipboard-text="Copy Me!" title="Click to copy me.">Copy to Clipboard</button> 
     <script src="@Url.Content("~/scripts/ZeroClipboard.js")"></script> 
     <script type="text/javascript"> 
      var pathToSWF = '@Url.Content("~/scripts/ZeroClipboard.swf")'; 
     </script> 
     <script src="@Url.Content("~/scripts/main.js)""></script> 
    </body> 
</html> 

然後你main.js內:

// main.js 
var clip = new ZeroClipboard(document.getElementById("copy-button"), { 
    moviePath: pathToSWF 
}); 

clip.on('load', function(client) { 
    // alert("movie is loaded"); 
}); 

clip.on('complete', function(client, args) { 
    this.style.display = 'none'; // "this" is the element that was clicked 
    alert("Copied text to clipboard: " + args.text); 
}); 

clip.on('mouseover', function(client) { 
    // alert("mouse over"); 
}); 

clip.on('mouseout', function(client) { 
    // alert("mouse out"); 
}); 

clip.on('mousedown', function(client) { 
    // alert("mouse down"); 
}); 

clip.on('mouseup', function(client) { 
    // alert("mouse up"); 
}); 
+0

哪裏有將被複制文本的按鈕和文本框? – DotnetSparrow 2013-02-25 14:38:14

+0

我的意思是標記?它會在本地工作,或者我需要上傳頁面到服務器? – DotnetSparrow 2013-02-25 14:38:50

+0

1.該按鈕位於我發佈的標記內。 2.您需要在服務器上安裝js和swf文件。 – 2013-02-25 14:42:16