这是js+flash的实现方式,先在http://code.google.com/p/zeroclipboard/downloads/list下载ZeroClipboard相关脚本文件,将ZeroClipboard.js和ZeroClipboard.swf文件添加到Solution中,运行即可,测试过几种主流浏览器通过。
<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 οnlοad="init()">
<h1>
Peter Test
</h1>
<input type="text" id="fe_text" οnchange="clip.setText(this.value)" /><br />
<input type="button" id="d_clip_button" value="Copy" /><br />
<input type="text" id="testarea" />
</body >
当然,网上还有纯脚本的实现方式,我目前用的也是这种方式,但好像只兼容IE和Firefox,代码也一并贴出来吧:
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);
}