转自:http://www.cnblogs.com/dreambin/p/9046999.html

Javascript原生有一些事件:copy、paste、cut,

这些事件可以作用的目标元素:

  能获得焦点的元素 (如contentEditable内容能编辑或者可以选中的元素),或者是<body>

<div id="cardList"><div class="btn">点击我,复制我</div>
</div><script type="text/javascript">function copy(str){var save = function (e){e.clipboardData.setData('text/plain',str);//下面会说到clipboardData对象
      e.preventDefault();//阻止默认行为
    }document.addEventListener('copy',save);document.execCommand("copy");//使文档处于可编辑状态,否则无效
  }document.getElementById('cardList').addEventListener('click',function(ev){copy(ev.target.innerText)})</script>

使用jQuery中的方法监听用户的剪切、复制、粘贴的行为:

$("#cut").on("cut",function(){alert("剪切");
});
$("#copy").on("copy",function(){alert("复制");
});
$("#paste").on("paste",function(){alert("粘贴");
});

这些行为包括使用键盘的ctrl + c操作,或者右击鼠标—>复制等操作。

Evevt.clipboardData 对象

clipboardData是JavaScript剪切板对象,该对象提供了3个常用方法:

  clearData():  clipboardData对象从剪切板删除一种或多种数据格式(一个参数:数据类型)

  getData():  clipboardData对象从剪切板获取指定格式的数据(一个参数:数据类型)

  setData():  clipboardData对象赋予指定格式的数据(两个参数:数据类型,要赋予的值)

  *数据类型一般为“"text/plain" ”

Evevt.clipboardData 对象兼容性问题

经过尝试,clipboardData对象内兼容大部分px浏览器,像chrome,firefox、ie等,但是在手机端兼容性不是很好,

  目前clipboardData在ios上的safari浏览器无效,为解决移动端这个问题,我们引用一个js插件——clipboard.js

  clipboard.js依赖于HTML5推出的Selection API和execCommand API

使用方法:

  首先在页面中引入

<script src="clipboard.min.js"></script>

  使用clipboard.js的自定义属性

<!--使用data-clipboard-target属性指定被复制的标签-->
<!--使用data-clipboard-action属性指定一些操作,copy(复制),cut(剪切)-->
<!--注意:cut 操作仅适用于<textarea>和<input>-->
<div style="margin:2em"><textarea id="id_text"></textarea><button type="button" id="id_copy"data-clipboard-target="#id_text"data-clipboard-action="copy">点击复制</button>
</div>
<script type="text/javascript">var clipboard = new Clipboard("#id_copy");clipboard.on("success",function (element) {//复制成功的回调
   console.info("复制成功,复制内容: " + element.text);});clipboard.on("error",function (element) {//复制失败的回调
   console.info(element);});
</script>

  高级用法:

//清理Clipboard对象
var clipboard = new Clipboard('.btn');
clipboard.destroy();

JS实现各种复制到剪贴板:

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

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

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

<!DOCTYPE html>
<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>

3、直接复制 url

<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>

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

<input onclick="oCopy(this)" value="你好.要copy的内容!">
<script language="javascript">
function oCopy(obj){
obj.select();
js=obj.createTextRange();
js.execCommand("Copy")
alert("复制成功!");
}
</script>

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

<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>

6.复制 span 标记中的内容

<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>

7.浏览器兼容  copyToClipboard("拷贝内容")

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("复制成功!");}}

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

<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

JS实现复制内容到剪切板,兼容PC和手机端,支持SAFARI浏览器相关推荐

  1. js禁止右键,禁止复制,复制内容到剪切板

    有时候我们希望自己的网页源码不被查看,这时需要关掉鼠标的右击事件;有时候我们也希望禁止选择页面内容Ctrl+C复制. 1.禁止右键查看源码; <script> //设置右键事件 funct ...

  2. html5 复制到剪贴板 兼容,JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)

    两天前听了一个H5的分享,会议上有一句话,非常有感触:不是你不能,而是你对自己的要求太低.很简单的一句话,相信很多事情不是大家做不到,真的是对自己的要求太低,如果对自己要求多一点,那么你取得的进步可能 ...

  3. html 文本标签点击复制,点击复制-点击div或者p标签复制内容到剪切板

    点击复制-点击div或者p标签复制内容到剪切板 最近在做一个需求,就是需要点击div或者p标签需要复制其中的内容到剪切板中,可以快速的粘贴 如图下所示: 1059788-201709041517163 ...

  4. android 复制内容到剪切板方法

    /*** 复制内容到剪切板** @param copyStr* @return*/ private boolean copyStr(String copyStr) {try {//获取剪贴板管理器Cl ...

  5. Android复制内容到剪切板上

    Android复制内容到剪切板上 fun Context.copyToClipboard(label: String, data: String) {getSystemService<Clipb ...

  6. html5图片剪切板,原生js实现基于base64数据复制图片到剪切板,可以粘贴出图片,模拟浏览器复制功能。...

    原生js实现基于base64数据复制图片到剪切板,可以粘贴出图片,模拟浏览器复制功能.前言: 初次发帖排版略丑,见谅.之前我们这边有个需求就是说,前端通过canvas截图然后, 点击一个按钮实现复制截 ...

  7. JavaScript复制内容到剪切板

    复制内容到剪切板分两种情况,一种是从页面已有的可选元素中选中内容进行复制,一种是将Javascript代码中的字符串直接复制到剪切板. 复制页面元素选中内容 html代码: <input typ ...

  8. js调用浏览器的复制功能复制内容到剪切板

    js调用浏览器的复制功能: 浏览器自带复制粘贴功能,通过js调用浏览器的复制功能实现复制文本内容到剪切板 浏览器复制命令:document.execCommand('Copy') 具体代码实现: // ...

  9. h5页面调用用户手机打电话功能以及复制内容到剪切板

    通过配合vant的面板组件实现该功能: 在index.html中添加meta标签:<meta name="format-detection" content="te ...

  10. 一键复制android代码,兼容安卓和ios实现一键复制内容到剪切板

    js兼容安卓和ios实现粘贴板一键复制 color: #000; background: #fff; overflow-y: scroll;-webkit-text-size-adjust: 100% ...

最新文章

  1. windows下 Source Monitor代码度量工具的使用
  2. php 编译mcrypt,centos 6下编译安装php时安装mcrypt支持库
  3. 安装zabbix4.0+grafana
  4. 【五】搜索推荐技术在电商导购领域的应用——截图小王子
  5. 音视频技术开发周刊(第126期)
  6. leetcode 572. 另一个树的子树(Java版)
  7. selenium和python的关系,Selenium+python
  8. python定时启动代码_python每天定时运行某程序代码
  9. 调试裕泰微yt8521s的phy芯片流程记录
  10. HTML5基础网页设计(加代码CSS)
  11. 组件上传之AspUpload使用方法
  12. 小米air耳机重新配对_小米air耳机重新配对_「小三爷出品」不错的新年礼物,小米蓝牙耳机Air体验...
  13. Java中除法运算符简介说明
  14. Mac Book文件夹加密
  15. 闭着眼学基础python 保姆教程:组合数据类型(2)映射与集合类型
  16. Python 蓝凌OA任意文件读取批量扫描 poc编写
  17. SGE(集群任务管理系统)常用操作命令
  18. 基于Java毕业设计研究生招生信息管理源码+系统+mysql+lw文档+部署软件
  19. unity+高通vuforia开发增强现实(AR)教程(二)
  20. 毕业了,我是先择业,还是先就业

热门文章

  1. Android应用分类
  2. 决策树分析例题经典案例_决策树分类的实例
  3. Maccms8.x 命令执行漏洞分析
  4. 【HTML+CSS+JS】模仿QQ登录界面
  5. 任正非的小女儿,出道了!以后会代言华为手机吗?
  6. oracle11g监听配置访问QA
  7. ETCD数据库源码分析——etcdserver bootstrap初始化存储
  8. 肿瘤 材料 计算机模拟,PeerJ: 计算机模拟揭示癌症多样性
  9. 无法加载 MySQL ODBC 5.3 Unicode Driver ODBC 驱动程序的安装例程,因为存在错误代码126.
  10. android 代码设置 键盘适应_实现Android键盘的中英文适配