使用asp.net中的Zero Clipboard将文本复制到剪贴板

当客户端点击Button时,我正在尝试使用Zero * Clipboard *将文本从Textbox复制到剪贴板 。 我正在尝试这么多天,但没有运气使这项工作。

在场景中,我有一个文本框 ,它从数据库中呈现数据。 我有一个按钮 ,当客户点击时应该复制文本框的文本 。 我试过跟随,但它不起作用。

一些帮助将不胜感激。

  ZeroClipboard.setMoviePath('/Scripts/ZeroClipboard.swf');   function test() { ZeroClipboard.setMoviePath('/Scripts/ZeroClipboard.swf'); //create client var clip = new ZeroClipboard.Client(); //event clip.addEventListener('mousedown', function () { clip.setText(document.getElementById('TextBox2').value); }); clip.addEventListener('complete', function (client, text) { alert('copied: ' + text); }); //glue it to the button clip.glue('d_clip_button'); }     

        //In Main.js file // main.js var clip = new ZeroClipboard( document.getElementById("copy-button"), { moviePath: "/path/to/ZeroClipboard.swf" } ); 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"); } ); 
    
Copy To Clipboard

首先,你试图通过错误的id选择元素。 由于您使用webforms,正确的方法是:

 getElementById('<%=TextBox2.ClientID%>') 

此外,遵循不引人注目的js风格的好解决方案可能看起来像:

 $().ready(function () { ZeroClipboard.setDefaults({ moviePath: "/Scripts/ZeroClipboard.swf" }); var clip = new ZeroClipboard(document.getElementById('YourButtonId')); //or '<%=YourButton.ClientID%>' if you use asp.net button clip.on('complete', function (client, args) { alert("Copied text to clipboard: " + args.text); }); }); 

你的按钮也应该有数据属性data-clipboard-target (实际上有三种方法可以做到)。 将数据属性设置为webforms控件很棘手,因此您可能希望避免在此处使用asp.net按钮,并执行以下操作:

  

请享用!