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 相关文章推荐
兼容ie和firefox js关闭代码
Dec 11 Javascript
jquery中ajax学习笔记4
Oct 16 Javascript
js限制文本框输入长度两种限制方式(长度、字节数)
Dec 19 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
Feb 05 Javascript
jQuery实现图片放大预览实现原理及代码
Sep 12 Javascript
jquery如何实现锚点链接之间的平滑滚动
Dec 02 Javascript
无闪烁更新网页内容JS实现
Dec 19 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
Jun 02 Javascript
javascript控制层显示或隐藏的方法
Jul 22 Javascript
H5移动端适配 Flexible方案
Oct 24 Javascript
vue中将html字符串转换成html后遇到的问题小结
Dec 10 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
Oct 31 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 简单日历实现代码
2009/10/28 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
PHP如何防止用户重复提交表单
2020/12/09 PHP
js 创建对象 经典模式全面了解
2016/08/16 Javascript
JS实现页面打印功能
2017/03/16 Javascript
详解Angular的8个主要构造块
2017/06/20 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
js实现动态增加文件域表单功能
2018/10/22 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
python生成器与迭代器详解
2019/01/01 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
python numpy之np.random的随机数函数使用介绍
2019/10/06 Python
django序列化serializers过程解析
2019/12/14 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
python 如何停止一个死循环的线程
2020/11/24 Python
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
护理工作感言
2014/01/16 职场文书
家长给孩子的评语
2014/01/30 职场文书
天网工程实施方案
2014/03/26 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2015年安全生产责任书
2015/01/30 职场文书
社会实践活动总结
2015/02/05 职场文书
如何理解PHP核心特性命名空间
2021/05/28 PHP
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python