JS实现一键点击按钮复制文本

news2024/9/21 2:32:53

JS实现一键点击按钮复制文本

  • 背景描述
  • JS代码实现

背景描述

现在有这样一个需求,想要在页面实现点击按钮,一键复制指定列表字段内容的操作,就像这样的效果
在这里插入图片描述
复制成功之后的内容在Notepad++ 粘贴可以看到
在这里插入图片描述
正式列表中链接地址字段的内容,那么如何实现一键点击按钮复制指定列字段内容的操作呢,下面我们来看具体的页面代码实现。

JS代码实现

首先来看页面按钮点击事件对应的方法
在这里插入图片描述
在点击 复制链接 按钮时需要传入您想要复制的字段内容,这里通过 row.url 取值 copylink() 方法内容如下

function copylink(url) {
      var flag = copyText(url);
      if (flag) {
        $.modal.alertSuccess("复制成功!");
      }else {
        $.modal.alertSuccess("复制失败!");
      }
    }

这里我们用到了一个 copyText() 方法,下面来看我们这个方法的详细实现,里面每一行代码我都做了注释,方便阅读

 /**
     * 复制文本到剪贴板
     * @param {string} text 需要被复制的文本
     * @returns {boolean} 如果复制成功返回true,否则返回false
     */
    function copyText(text) {
      // 创建一个隐藏的textarea元素
      var textarea = document.createElement("textarea");
      // 保存当前焦点元素
      var currentFocus = document.activeElement;
      // 将textarea添加到body中
      document.body.appendChild(textarea);
      // 设置textarea的值为传入的文本
      textarea.value = text;
      // 让textarea获得焦点
      textarea.focus();
      // 为textarea设置选择范围,兼容性处理
      if (textarea.setSelectionRange){
        textarea.setSelectionRange(0, textarea.value.length);
      } else {
        textarea.select();
      }
      // 尝试执行复制命令
      try {
        var flag = document.execCommand("copy");
      } catch(eo){
        var flag = false;
      }
      // 移除textarea元素
      document.body.removeChild(textarea);
      // 将焦点返回之前的元素
      currentFocus.focus();
      // 返回复制是否成功
      return flag;
    }

这个代码其实比较容易理解,基本上就是先创建一个隐藏的textarea元素,然后再将传入的文本设置为textarea的值,最后执行复制命令就可以了。大家有需要的可以放心拿去用,这里我已经验证过是好用的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2047691.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习笔记】Day 15

一、进度概述 1、《地震勘探原理》第八、九章 二、详情 对于第八章,主要讨论地震资料岩性解释的基本方法,对于利用地震信息进行储层的物性预测于解释、储层的含油性分析与解释、地震地层学解释、层序地层学解释、地球物理资料综合解释等内容。 第五、六…

【图解秒杀系列】秒杀技术点——静态化

【图解秒杀系列】秒杀技术点——静态化 什么是静态化、静态化的作用如何实现静态化FreeMarker、Thymleaf处理流程问题 OpenResty Lualua_shared_dict & lua-resty-template处理流程具体操作 什么是静态化、静态化的作用 静态化就是指通过某种静态化技术,将原本…

【动态规划、dp】P1091 [NOIP2004 提高组] 合唱队形 题解

题意 n n n 位同学站成一排,音乐老师要请其中的 n − k n−k n−k 位同学出列,使得剩下的 k k k 位同学排成合唱队形。 合唱队形是指这样的一种队形:设 k k k 位同学从左到右依次编号为 1 , 2 , … , k 1,2, …,k 1,2,…,k,他…

Qt-创建第一个Qt项目(3)

目录 新建项目 设置路径 选择构建工具 父类的选择 各个父类的介绍 国际化相关的选项 选择SDK Summary选择 项目初见 新建项目 这一点和在VS里面是一样的,我们首先都得创建一个项目出来 进去之后就是选择项目模板了 我们使用默认的就行了,左边…

顺丰科技25届秋季校园招聘常见问题答疑及校招网申测评笔试题型分析SHL题库Verify测评

Q:顺丰科技2025届校园招聘面向对象是? A:2025届应届毕业生,毕业时间段为2024年10月1日至2025年9月30日(不满足以上毕业时间的同学可以关注顺丰科技社会招聘或实习生招聘)。 Q:我可以投递几个岗…

涉密载体管控系统DW-S402|实现载体管控新模式

涉密载体管控系统DW-S402是用于对各种涉密载体进行有效管理的智能柜(智能管理系统),基于物联网技术实现对载体的智能化、规范化、标准化管理,广泛应用于保密、机要单位以及企事业单位等有载体保管需求的行业。 载体管控软件对涉密…

可用性检查和短缺部件检查

可用性检查 可用性检查有两种类型: “库存管理”中库存类型的可用性检查(静态可用性检查)从“物料需求计划”的角度检查可用库存(动态可用性检查) 库存类型的可用性检查(静态可用性检查) 此项…

全面解析ETL:数据仓库架构中的关键处理过程

目录 一、数据仓库架构中的ETL 二、数据抽取 (1)逻辑抽取 (2)物理抽取 (3)变化数据捕获 三、数据转换 四、数据装载 (1)提高装载效率 (2)处理装载失败 五、ET…

MacOS 下运行 GPT-SoVITS

系统环境: # 安装 ffmpeg brew install ffmpeg # 查看版本 ffmpeg -version # 拉取项目代码 git clone --depth1 https://github.com/RVC-Boss/GPT-SoVITS cd GPT-SoVITS # 安装好 Miniconda 之后,先创建一个虚拟环境: conda create -n GPT…

关于Qt的系统总结

查看详情http://100bcw.com/qt6.htm 编译环境与开发流程 开发QT有两种IDE可以使用,一种是使用 VS + Qt 的插件,另一种就是使用QtCreator工具。前一种是微软的工具,用的都比较多容易上手,缺点是信号槽的支持不太好,需要手写,不能自动生成,另外可能有中文编码的问题。后一…

PSINS工具箱函数介绍——trjfile

文章目录 关于工具箱使用方法运行代码运行方法运行结果输出数据的解释 源代码 关于工具箱 trjfile是导入轨迹数据的函数,在文件夹"psins \base\io"里面,用于导入轨迹相关的mat文件。 本文所述的代码需要基于PSINS工具箱,工具箱的讲…

Centos7.9 Kickstart自动应答,无人值守安装

有时候安装一两台服务器是轻松的事,但是如果要安装2,3百台的时候那就不是很轻松了,这时候无人值守的操作系统安装就变得非常重要。通过网络自动安装是非常方便而且快捷的。 先关闭防火墙吧 systemctl stop firewalld systemctl disable fire…

安卓蓝牙日志的获取方法

有过蓝牙调试经历的同学们可能都知道,在安卓系统中,在手机的设置–>开发人员页面下有一个开启蓝牙HCI信息收集日志选项开关,如下图中标红处, 打开该开关,就可以收集本机发送和接收的蓝牙HCI包。蓝牙包的数据会保存在…

Java算法解析一:二分算法及其衍生出来的问题

这个算法的前提是,数组是升序排列的 算法描述: i和j是指针可以表示查找范围 m为中间值 当目标值targat比m大时,设置查找范围在m右边:i m-1 当目标值targat比m小时,设置查找范围在m左边:j m1 当targat的…

苹果手机垃圾清理:释放存储空间的终极指南

随着iPhone成为我们日常生活的重要组成部分,我们越来越多地依赖它来处理个人和工作相关的事务。然而,长时间的使用会让iPhone积累大量不必要的数据和文件,这些所谓的“手机垃圾”不仅占用了宝贵的存储空间,还可能影响设备的性能。…

【Vite】模块热替换 HMR

概述 Vite 提供了一套原生 ESM 的 HMR API。 具有 HMR 功能的框架可以利用该 API 提供即时、准确的更新,而无需重新加载页面或清除应用程序状态。当通过 create-vite 创建应用程序时,所选模板已经预先配置了相关的集成。 HMR API Vite 通过特殊的 imp…

C++初学(12)

前段时间去旅游了&#xff0c;回来继续写。 12、指针、数组和指针算术 对上一篇进行的补充 #include <iostream> int main() {using namespace std;double wages[3] { 10000.0,20000.0,30000.0 };short stacks[3] { 3,2,1 };double* pw wages;short* ps &stack…

实时监控Windows服务器:使用Prometheus和Grafana的终极方案

1. 下载并安装 Prometheus 下载 Prometheus&#xff1a; 访问 Prometheus 下载页面。下载适用于 Windows 的压缩包&#xff08;.zip 文件&#xff09;。prometheus-2.53.2.windows-amd64.zip 下载其中一个就行 安装 Prometheus&#xff1a; 解压下载的压缩包到你选择的目录&a…

欧拉远程桌面 安装tigervnc

注意&#xff1a;安装远程tigevnc前提必须已经安装桌面环境&#xff0c;以下为ukui桌面环境&#xff0c;dde稍有区别&#xff1b; 1、关闭selinux 注意&#xff1a;selinux为安全措施也可以加入对应规则 setenforce 0 sed -i s/^SELINUXenforcing.*/SELINUXdisabled/ /etc/sel…

基于大模型的AI论文简报生成系统

1、项目介绍 1.1 项目名称 AI 论文简报生成系统 1.2 项目简介 AI 论文简报生成系统是一款基于当前时间自动获取最新AI研究论文简报的桌面应用程序。通过集成各类大模型Kimi、deepSeek&#xff0c;OpenAI等模型API与多步数据处理脚本&#xff0c;该系统能够在用户指定的时间…