JavaScript实现点击按钮复制指定区域文本(推荐)


Posted in Javascript onNovember 25, 2016

html5的webAPI接口可以很轻松的使用短短的几行代码就实现点击按钮复制区域文本的功能,不需要依赖flash。

代码如下:

/* 创建range对象 */
const range = document.createRange();
range.selectNode(element); // 设定range包含的节点对象 
/* 窗口的selection对象,表示用户选择的文本 */
const selection = window.getSelection();
if(selection.rangeCount > 0) selection.removeAllRanges(); // 将已经包含的已选择的对象清除掉
selection.addRange(range); // 将要复制的区域的range对象添加到selection对象中
document.execCommand('copy'); // 执行copy命令,copy用户选择的文本

测试:

浏览器的版本号为我测试时使用的版本。

edge浏览器、Chrome(v54.0.2840.99 m)、Firefox(v49.0.1)可用。

IE9、IE10、IE11会弹出提示询问是否将文本粘贴到剪贴板上。

IE7、IE8不支持该功能。

IOS10的Safari浏览器可用。

根据反馈,IOS9以下的Safari浏览器应该是不支持该功能的。

Demo:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<article id="article">
<h4>公园一日游</h4>
<time>2016.8.15 星期二</time>
<p>今天风和日丽,我和小红去了人民公园,玩了滑梯、打雪仗、划船,真是愉快的一天啊。</p>
</article>
<button id="copy">复制文章</button>
<textarea style="width: 500px;height: 100px;" placeholder="试一试ctrl + v"></textarea>
<script>
function copyArticle(event){
const range = document.createRange();
range.selectNode(document.getElementById('article'));
const selection = window.getSelection();
if(selection.rangeCount > 0) selection.removeAllRanges();
selection.addRange(range);
document.execCommand('copy');
}
document.getElementById('copy').addEventListener('click', copyArticle, false);
</script>
</body>
</html>

以上所述是小编给大家介绍的JavaScript实现点击按钮复制指定区域文本,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery 添加/移除CSS类实现代码
Feb 11 Javascript
JS实现超简单的仿QQ折叠菜单效果
Sep 21 Javascript
给easyui datebox扩展一个清空的实例
Nov 09 Javascript
js实现滑动到页面底部自动加载更多功能
Feb 15 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
Jul 07 Javascript
利用js给datalist或select动态添加option选项的方法
Jan 25 Javascript
微信小程序列表中item左滑删除功能
Nov 07 Javascript
Vue+Django项目部署详解
May 30 Javascript
javascript绘制简单钟表效果
Apr 07 Javascript
vue中实现图片压缩 file文件的方法
May 28 Javascript
JS代码简洁方式之函数方法详解
Jul 28 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
Nov 24 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
Nov 25 #Javascript
Bootstrap文件上传组件之bootstrap fileinput
Nov 25 #Javascript
Bootstrap基本布局实现方法详解
Nov 25 #Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
Nov 25 #Javascript
Bootstrap栅格系统学习笔记
Nov 25 #Javascript
JS公共小方法之判断对象是否为domElement的实例
Nov 25 #Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
Nov 25 #Javascript
You might like
php+mysqli使用面向对象方式更新数据库实例
2015/01/29 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
关于Javascript 的 prototype问题。
2007/01/03 Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
2011/02/12 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
[01:33]PWL开团时刻DAY2-开雾与反开雾
2020/10/31 DOTA
Python 自动补全(vim)
2014/11/30 Python
Python类属性与实例属性用法分析
2015/05/09 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
python多线程和多进程关系详解
2020/12/14 Python
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
销售人员中英文自荐信
2013/09/22 职场文书
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
希特勒的演讲稿
2014/05/23 职场文书
节能标语大全
2014/06/21 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers