分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

前端JS复制特定区域的文本

发布时间:2023-09-06 02:26责任编辑:胡小海关键词:前端

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>

可以复制粘贴下来,自己测试一下。

API参考:
  • document.execCommand
  • document.createRange
  • window.getSelection

  • https://zhuanlan.zhihu.com/p/23920249?refer=dreawer

前端JS复制特定区域的文本

原文地址:https://www.cnblogs.com/qdcnbj/p/10145403.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved