“复制到剪贴板”的解决方案
这是js+flash的实现方式,先在http://code.google.com/p/zeroclipboard/downloads/list下载ZeroClipboard相关脚本文件,将ZeroClipboard.js和ZeroClipboard.swf文件添加到Solution中,运行即可,测试过几种主流浏览器通过。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | < head > < title >Peter Test</ title > < script type="text/javascript" src="ZeroClipboard.js"></ script > < script type="text/javascript"> var clip = null; //function $(id) { return document.getElementById(id); } function init() { clip = new ZeroClipboard.Client(); clip.setHandCursor(true); clip.glue('d_clip_button'); } //function my_Click(client) //{ //clip.setText($('fe_text').value); //} $("#d_clip_button").click(function (){ clip.setText($('fe_text').value); }); </ script > </ head > < body onload="init()"> < h1 > Peter Test </ h1 > < input type="text" id="fe_text" onchange="clip.setText(this.value)" />< br /> < input type="button" id="d_clip_button" value="Copy" />< br /> < input type="text" id="testarea" /> </ body > |
当然,网上还有纯脚本的实现方式,我目前用的也是这种方式,但好像只兼容IE和Firefox,代码也一并贴出来吧:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | function copyToClipboard(txt) { if (window.clipboardData) { window.clipboardData.clearData(); window.clipboardData.setData( "Text" , txt); } else if (navigator.userAgent.indexOf( "Opera" ) != -1) { window.location = txt; } else if (window.netscape) { try { netscape.security.PrivilegeManager.enablePrivilege( "UniversalXPConnect" ); } catch (e) { alert( "被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'" ); } var clip = Components.classes[ '@mozilla.org/widget/clipboard;1' ].createInstance(Components.interfaces.nsIClipboard); if (!clip) return ; var trans = Components.classes[ '@mozilla.org/widget/transferable;1' ].createInstance(Components.interfaces.nsITransferable); if (!trans) return ; trans.addDataFlavor( 'text/unicode' ); var str = new Object(); var len = new Object(); var str = Components.classes[ "@mozilla.org/supports-string;1" ].createInstance(Components.interfaces.nsISupportsString); var copytext = txt; str.data = copytext; trans.setTransferData( "text/unicode" , str, copytext.length * 2); var clipid = Components.interfaces.nsIClipboard; if (!clip) return false ; clip.setData(trans, null , clipid.kGlobalClipboard); } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步