Google source 开放了JavaScript代码: zeroclipboard , 实现 "复制到剪切板"的功能,并支持所有浏览器.
测试案例: http://www.javbon.com/resources/zeroclipboard/test.html
参考文档: http://code.google.com/p/zeroclipboard/wiki/Instructions
方法介绍:
1) 引入ZeroClipboard.js/ZeroClipboard.swf 2个文件即可.
2个文件与对应的页面最好是放在同一目录, 如果不是同一目录, 则可能需要修改ZeroClipboard.js里面的 moviePath: 路径值. (js的相对路径没有处理好, 比较狗血)
2) 加入asp.net网页后, 出现Mathon浏览器反而不支持复制功能的情况, 并出现报错.
解决方法是用try方法捕捉错误后, 用window.clipboardData.setData("Text", "text value") 代替.
参考代码:
<script language="JavaScript">
var clip = new ZeroClipboard.Client();
clip.setText(''); // will be set later on mouseDown
clip.setHandCursor(true);
clip.setCSSEffects(true);
clip.addEventListener('load', function(client) {
// alert( "movie is loaded" );
});
clip.addEventListener('complete', function(client, text) {
//alert("Copied text to clipboard: " + text);
alert("已复制成功到剪切板." );
});
clip.addEventListener('mouseOver', function(client) {
// alert("mouse over");
});
clip.addEventListener('mouseOut', function(client) {
// alert("mouse out");
});
clip.addEventListener('mouseDown', function(client) {
try{
// set text to copy here
clip.setText(document.getElementById('txtLogiName').value);
}
catch (err) {
var clipBoardContent = document.getElementById("txtLogiName").value;
window.clipboardData.setData("Text", clipBoardContent);
}
// alert("mouse down");
});
clip.addEventListener('mouseUp', function(client) {
// alert("mouse up");
});
clip.glue('d_clip_button');
</script>
感谢新浪博客文章提供参考: http://blog.sina.com.cn/s/blog_842f551e01019qn8.html