原生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 相关文章推荐
DEFER怎么用?
Jul 01 Javascript
基于jQuery的倒计时插件代码
May 07 Javascript
理解JavaScript的prototype属性
Feb 11 Javascript
uploadify多文件上传参数设置技巧
Nov 16 Javascript
Vue.js一个文件对应一个组件实践
Oct 27 Javascript
bootstrap vue.js实现tab效果
Feb 07 Javascript
ztree实现权限横向显示功能
May 20 Javascript
JavaScript之map reduce_动力节点Java学院整理
Jun 29 Javascript
vue项目中v-model父子组件通信的实现详解
Dec 10 Javascript
解决vue中虚拟dom,无法实时更新的问题
Sep 15 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
Sep 19 Javascript
JS尾递归的实现方法及代码优化技巧
Jan 19 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框架codeigniter中如何使用框架的session
2013/06/24 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
php轻松实现文件上传功能
2016/03/03 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
禁止js文件缓存的代码
2010/04/09 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
JavaScript中创建字典对象(dictionary)实例
2015/03/31 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
浅谈手写node可读流之流动模式
2018/06/01 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
json字符串对象转换代码实例
2019/09/28 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
python获取命令行输入参数列表的实例代码
2018/06/23 Python
python3 enum模块的应用实例详解
2019/08/12 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
python实现加密的方式总结
2020/01/19 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
美国修容界大佬创建的个人美妆品牌:Kevyn Aucoin Beauty
2018/12/12 全球购物
班长岗位职责
2013/11/10 职场文书
高中地理教学反思
2014/01/29 职场文书
2014年幼儿园植树节活动方案
2014/03/02 职场文书
2014年创卫工作总结
2014/11/24 职场文书
辞职信标准格式
2015/02/27 职场文书
党员带头倡议书
2015/04/29 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
会计做账心得体会
2016/01/22 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书