js实现一键复制功能


Posted in Javascript onMarch 16, 2017

项目描述:最近做一个移动端活动页面,用户抽奖后会生成一个兑换码,为了优化用户体验,需要做一个复制按钮,能够一键复制兑换码。

项目需求: 兼容移动端所有主流浏览器。并且做为安卓和IOS的H5页面。

目前能够实现复制功能的方法有以下几种:

  1. execCommand("copy");
  2. clipboardData;
  3. ZeroClipboard.js

1.execCommand:是doucment对象的方法,可以实现浏览器菜单的很多功能,如保存文件,打开新文件,撤销,复制,等等。可以更好的完成文本编辑

有如下用法:

【全选】

格式:document.execCommand("SelectAll");

【打开】

格式:document.execCommand("Open");

【另存为】

格式:document.execCommand("SaveAs");

【打印】

格式:document.execCommand("print");

【剪切】

格式:document.execCommand("Cut","false",null);

【删除】

格式:document.execCommand("Delete","false",null);

【改变文本字体】

格式:document.execCommand("FontName","false",sFontName);

【改变字体大小】

格式:document.execCommand("FontSize","false",sSize|iSize);

【使绝对定位的元素可拖动】

格式:document.execCommand("2D-Position","false","true");

【复制】

格式:document.execCommand("Copy","false",null);

等等

应用实例:

HTML:

<input onclick="copy()" value="你好.要copy的内容!">

js代码:

function copy(){
 var Url2=document.getElementById("js-copy-text");
 Url2.select(); // 选择对象
 try{
  if(document.execCommand('copy', false, null)){
   document.execCommand("Copy");
   alert("已复制好,可贴粘。");
  } else{
   alert("复制失败,请手动复制");
  }
  } catch(err){
   alert("复制失败,请手动复制");
  }
}

注意:经测试该方法,PC端IE需要手动设置权限,其他浏览器均支持,M端很少浏览器支持;

2. clipboardData:对象提供了对剪贴板的访问

clipboardData有三个方法:

  1. clearData(sDataFormat)删除剪贴板中指定格式的数据;
  2. clearData(sDataFormat)getData(sDataFormat)从剪贴板中获取制定格式的数据;
  3. clearData(sDataFormat)setData(sDataFormat,sData)给剪贴板赋予指定格式的数据,返回true表示操作成功;

应用实例:

<input onclick="copy(this)" value="你好.要copy的内容!">

js代码:

function copy(){
 window.clipboardData.setData("text",document.getElementById("mytext").value);
 alert("The text is on the clipboard, try to paste it!");
}

注意:经测试该方法,仅在IE浏览器中有效;

在其他浏览器运行会报错:

firefox:TypeError: window.clipboardData is undefined

chrom: TypeError: Cannot read property 'setData' of undefined

经查资料:

MSDN https://msdn.microsoft.com/en-us/library/ms535220(v=vs.85).aspx
This object is available in script as of Microsoft Internet Explorer 5.
http://help.dottoro.com/ljctuhrg.php 也表示该方法出于对安全性的考虑,现在只支持IE:
In Firefox, Opera, Google Chrome and Safari, use the execCommand method with the 'Paste' command to retrieve and with the 'Copy' command to set the text content of the clipboard. Because of security restrictions, this method may not always work, see Example 2 for details.

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
js 获取、清空input type=&quot;file&quot;的值(示例代码)
Dec 24 Javascript
js中scrollTop()方法和scroll()方法用法示例
Oct 03 Javascript
ztree实现权限横向显示功能
May 20 Javascript
jQuery 控制文本框自动缩小字体填充
Jun 16 jQuery
基于vue.js的分页插件详解
Nov 27 Javascript
基于jquery.page.js实现分页效果
Jan 01 jQuery
在iFrame子页面里实现模态框的方法
Aug 17 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
Oct 12 Javascript
vue中引入第三方字体文件的方法示例
Dec 17 Javascript
详解Js里的for…in和for…of的用法
Mar 28 Javascript
使用xampp将angular项目运行在web服务器的教程
Sep 16 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
Jul 18 Javascript
js判断PC端与移动端跳转
Dec 24 #Javascript
jquery编写日期选择器
Mar 16 #Javascript
jquery事件与绑定事件
Mar 16 #Javascript
Angular使用$http.jsonp发送跨站请求的方法
Mar 16 #Javascript
JSON与js对象序列化实例详解
Mar 16 #Javascript
JS对象的深度克隆方法示例
Mar 16 #Javascript
JS对象深度克隆实例分析
Mar 16 #Javascript
You might like
中英文字符串翻转函数
2008/12/09 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
php画图实例
2014/11/05 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
Vue下的国际化处理方法
2017/12/18 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
利用Python的Twisted框架实现webshell密码扫描器的教程
2015/04/16 Python
python简单文本处理的方法
2015/07/10 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
Square Off美国/加拿大:世界上最聪明的国际象棋棋盘
2018/12/06 全球购物
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
竞聘副主任科员演讲稿
2014/01/11 职场文书
环保倡议书
2014/04/14 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
档案工作个人总结
2015/03/03 职场文书
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang
Python3中PyQt5简单实现文件打开及保存
2021/06/10 Python