js copy

Javascript 实现复制(Copy)动作方法大全

投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2014-06-20 我要评论

现在浏览器种类也越来越多,诸如 IE、Firefox、Chrome、Safari等等,因此现在要实现一个js复制内容到剪贴板的小功能就不是一件那么容易的事了。
 

一、实现点击按钮,复制文本框中的的内容

?
1
2
3
4
5
6
7
8
9
10
11
< script type = "text/javascript" >
function copyUrl2()
{
var Url2=document.getElementById("biao1");
Url2.select(); // 选择对象
document.execCommand("Copy"); // 执行浏览器复制命令
alert("已复制好,可贴粘。");
}
</ script >
< textarea cols = "20" rows = "10" id = "biao1" >用户定义的代码区域</ textarea >
< input type = "button" onClick = "copyUrl2()" value = "点击复制代码" />

二、复制专题地址和 url 地址,传给 QQ/MSN 上的好友

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=gb2312" />
< title >Js复制代码</ title >
</ head >
< body >
< p >
< input type = "button" name = "anniu1" onClick = 'copyToClipBoard()' value = "复制专题地址和url地址,传给QQ/MSN上的好友" >
< script language = "javascript" >
function copyToClipBoard(){
var clipBoardContent="";
clipBoardContent+=document.title;
clipBoardContent+="";
clipBoardContent+=this.location.href;
window.clipboardData.setData("Text",clipBoardContent);
alert("复制成功,请粘贴到你的QQ/MSN上推荐给你的好友");
}
</ script >

三、直接复制 url

?
1
2
3
4
5
6
7
8
9
< input type = "button" name = "anniu2" onClick = 'copyUrl()' value = "复制URL地址" >
< script language = "javascript" >
function copyUrl()
{
var clipBoardContent=this.location.href;
window.clipboardData.setData("Text",clipBoardContent);
alert("复制成功!");
}
</ script >

四、点击文本框时,复制文本框里面的内容

?
1
2
3
4
5
6
7
8
9
< input onclick = "oCopy(this)" value = "你好.要copy的内容!" >
< script language = "javascript" >
function oCopy(obj){
obj.select();
js=obj.createTextRange();
js.execCommand("Copy")
alert("复制成功!");
}
</ script >

五、复制文本框或者隐藏域中的内容

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
< script language = "javascript" >
function CopyUrl(target){
target.value=myimg.value;
target.select();
js=myimg.createTextRange();
js.execCommand("Copy");
alert("复制成功!");
}
function AddImg(target){
target.value="[IMG]"+myimg.value+"[/ img]";
target.select();
js=target.createTextRange();
js.execCommand("Copy");
alert("复制成功!");
}
</ script >

六、复制 span 标记中的内容

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< script type = "text/javascript" >
</ script >
< br />
< br />
< script type = "text/javascript" >function copyText(obj)
{
var rng = document.body.createTextRange();
rng.moveToElementText(obj);
rng.scrollIntoView();
rng.select();
rng.execCommand("Copy");
rng.collapse(false);
alert("复制成功!");
}
</ script >

七、浏览器兼容  copyToClipboard("拷贝内容")

?
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
33
34
function copyToClipboard(txt) {
       if (window.clipboardData) {
         window.clipboardData.clearData();
         clipboardData.setData( "Text" , txt);
         alert( "复制成功!" );
  
       } 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);
         alert( "复制成功!" );
       }
     }

 

 

八、兼容各大浏览器的复制代码(结合ZeroClipboard.js)

?
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
< html >
< head >
< title >Zero Clipboard Test</ title >
< script type = "text/javascript" src = "ZeroClipboard.js" ></ script >
< script language = "JavaScript" >
  var clip = null;
  function $(id) { return document.getElementById(id); }
  function init() {
      clip = new ZeroClipboard.Client();
      clip.setHandCursor(true);    
      clip.addEventListener('mouseOver', function (client) {
   // update the text on mouse over
   clip.setText( $('fe_text').value );
      });
      
      clip.addEventListener('complete', function (client, text) {
   //debugstr("Copied text to clipboard: " + text );
   alert("该地址已经复制,你可以使用Ctrl+V 粘贴。");
      });
      clip.glue('clip_button', 'clip_container' );
  }
</ script >
</ head >
< body onLoad = "init()" >
< input id = "fe_text" cols = 50 rows = 5 value=复制内容文本1 >
< span id = "clip_container" >< span id = "clip_button" >< b >复制</ b ></ span ></ span >
</ body >
</ html >

 

转载于:https://www.cnblogs.com/developer-ios/p/5925567.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值