原生js实现点击按钮复制内容到剪切板


Posted in Javascript onNovember 19, 2020

本文实例为大家分享了js点击按钮复制内容到剪切板的具体代码,供大家参考,具体内容如下

效果图

原生js实现点击按钮复制内容到剪切板

上代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<style>
  .divBox {
    width: 500px;
    margin: 100px auto;
    display: flex;
  }

  .popupStyle {
    display: none;
    width: 160px;
    background-color: rgb(85, 85, 85);
    color: aqua;
    text-align: center;
    border-radius: 6px;
    padding: 8px 0;
    position: fixed;
    z-index: 1;
    top: 2%;
    left: 50%;
    margin-left: -80px;
  }
</style>
<body>
  <div class="divBox">
    <div id="div">这是要复制的div内容</div>
    <a href="#" onclick="handleDivCopy()">点击复制</a>
  </div>
  <div class="divBox">
    <textarea id="textarea">Hello,World</textarea>
    <a href="#" onclick="handleCopy()">点击复制</a>
  </div>
  <script>
    
    // 复制 div 内容
    function handleDivCopy() {
      const div = document.getElementById("div");
      const input = document.createElement("input");
      document.body.appendChild(input);
      input.value = div.innerText;
      input.select();
      
      try {
        if (document.execCommand("copy", false)) {
          handleDomMsg("div 内容复制成功");
        } else {
          handleDomMsg("div 内容复制失败");
        }
      } catch (error) {
        console.log(error, "error")
      } finally {
        input.remove();
      }
    };
    
    // 复制输入框内容
    function handleCopy() {
      const textarea = document.getElementById("textarea");
      textarea.select();
      try {
        if (document.execCommand("copy", false)) {
          handleDomMsg("输入框内容复制成功");
        } else {
          handleDomMsg("输入框内容复制失败");
        }
      } catch (error) {
        console.log(error, "error")
      }
    };


    // DOM 弹窗
    function handleDomMsg(message) {
      const div = document.createElement("div");
      document.body.appendChild(div);
      div.innerHTML = message || "this is a Message";
      div.className = "popupStyle";
      div.style.display = "block";

      setTimeout(() => {
        div.remove();
      }, 1000);
    }

  </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于JS中的闭包浅谈
Aug 23 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
Oct 24 Javascript
jquery的父子兄弟节点查找示例代码
Mar 03 Javascript
JS调用页面表格导出excel示例代码
Mar 18 Javascript
批量修改标签css样式以input标签为例
Jul 31 Javascript
js时钟翻牌效果实现代码分享
Jul 31 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
May 10 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
Sep 20 Javascript
微信小程序wx.request的简单封装
Nov 13 Javascript
让mocha支持ES6模块的方法实现
Jan 14 Javascript
微信小程序input抖动问题的修复方法
Mar 03 Javascript
js实现弹框效果
Mar 24 Javascript
jQuery-App输入框实现实时搜索
Nov 19 #jQuery
elementUI同一页面展示多个Dialog的实现
Nov 19 #Javascript
微信小程序实现点击导航标签滚动定位到对应位置
Nov 19 #Javascript
深入了解Vue3模板编译原理
Nov 19 #Vue.js
微信小程序实现倒计时功能
Nov 19 #Javascript
微信小程序实现列表左右滑动
Nov 19 #Javascript
详解JavaScript 中的批处理和缓存
Nov 19 #Javascript
You might like
php数据库配置文件一般做法分享
2012/07/07 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
使用Angular 6创建各种动画效果的方法
2018/10/10 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
解决vue项目router切换太慢问题
2020/07/19 Javascript
使用70行Python代码实现一个递归下降解析器的教程
2015/04/17 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
python如何实现DES加密
2020/09/21 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
学生励志演讲稿
2014/01/06 职场文书
自我介绍演讲稿
2014/01/15 职场文书
三年级小学生评语
2014/04/22 职场文书
给公司的建议书范文
2014/05/13 职场文书
车辆委托书范本
2014/10/05 职场文书
2014年采购部工作总结
2014/11/20 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书
openstack云计算keystone组件工作介绍
2022/04/20 Servers
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android