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 相关文章推荐
jQuery中与toggleClass等价的程序段 以及未来学习的方向
Mar 18 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
Dec 25 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
Apr 04 Javascript
JS截取url中问号后面参数的值信息
Apr 29 Javascript
使用JavaScript实现旋转的彩圈特效
Jun 23 Javascript
jQuery实现文件上传进度条特效
Aug 12 Javascript
jquery自定义插件开发之window的实现过程
May 06 Javascript
AngularJS通过$http和服务器通信详解
Sep 21 Javascript
用angular实现多选按钮的全选与反选实例代码
May 23 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
Jun 06 Javascript
详解Eslint 配置及规则说明
Sep 10 Javascript
js实现3D照片墙效果
Oct 28 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
十天学会php之第十天
2006/10/09 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
PHP 防注入函数(格式化数据)
2011/08/08 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
php实现微信支付之退款功能
2018/05/30 PHP
YII框架关联查询操作示例
2019/04/29 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
基于JS设计12306登录页面
2016/12/28 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
Python爬虫实例扒取2345天气预报
2018/03/04 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
Python一行代码实现快速排序的方法
2019/04/30 Python
python speech模块的使用方法
2020/09/09 Python
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
公司部门司机岗位职责
2014/01/03 职场文书
实习生自我评价
2014/01/18 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
农民工预备党员思想汇报
2014/09/14 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
党员个人整改措施
2014/10/24 职场文书
班主任寄语2015
2015/02/26 职场文书
步步惊心观后感
2015/06/12 职场文书
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android