js实现复制粘贴的两种方法

 更新时间:2020年12月04日 13:56:54   作者:后青春诗ing  
这篇文章主要为大家详细介绍了js实现的两种方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了js实现复制粘贴的具体代码,供大家参考,具体内容如下

一、前沿

界面需要复制功能,所以就写了一个作为简单记录

二、方法、推荐第二种。

1、第一种方法

1)、通过 document.execCommand('copy')
2)、前端代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>constructor-nodelist</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <link rel="stylesheet" href="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.css"/>

</head>
<body>
<button class="copy_file" onclick="copyText('copy_file')">点我复制</button>
<a id="copy_file" href="复制内容" ></a>
<script type="text/javascript" src="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.js"></script>
<script>
function copyText(str_file) {
 const btn = document.querySelector('.'+str_file);
 var copy_val = document.getElementById(str_file)
 var copy_file = copy_val.getAttribute("href");
 btn.addEventListener('click',() => {
  const input = document.createElement('input');
  document.body.appendChild(input);
  input.setAttribute('value', copy_file);
  input.select();
  if (document.execCommand('copy')) {
   document.execCommand('copy');
   swal("复制成功!","success");
  }
  document.body.removeChild(input);
 })
}

</script>
</body>

3)、总结:主要是通过 class和id 来复制 a标签中的 href,把复制好的内容放到 生成的input标签中,然后复制结束把 input标签给remove,这个你复制内容自行发挥,和修改 js。
4)、问题:第一次点击不生效,需要点击两次,暂时不解决

2、第二种方法

1)、通过 ClipboardJS 来实现 内容的复制,推荐这个
2)、git地址:clipboardjs
3)、前端代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <!-- 请自行去git项目下载 js-->
 <script src="./clipboard.min.js"></script>
 <link rel="stylesheet" href="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.css"/>
 <script type="text/javascript" src="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.js"></script>
</head>
<body>

<button id="btn" data-clipboard-text="str_555" onclick="copyText()">
 <span>Copy</span>
</button>
</body>
</html>

<script>
function copyText() {
 var btn = document.getElementById('btn');
 console.log(btn);
  var clipboard = new ClipboardJS(btn);
<!--  var clipboard = new ClipboardJS(btn, {-->
<!--   container: document.getElementById('btn')-->
<!--  });--> 如果你的项目是 bootstrap框架,请使用这个
  clipboard.on('success', function(e) {
   console.log(e);
   swal("复制成功!","success");
   clipboard.destroy();
  });

  clipboard.on('error', function(e) {
   console.log(e);
   swal("复制失败","error");
   clipboard.destroy();
  });
}
</script>

3)、总结:请一定要仔细阅读 文档。这个项目还是非常强大的,强烈推荐这个。

4)、问题:也是遇到了 第一次复制不生效的问题,暂时不解决了。

三、总结

1、都遇到了 第一次复制不生效的问题,后续解决把,都采用了 sweetalert 。
2、个人都只在 谷歌和火狐浏览器实验了,都可以用,如果其他浏览器版本不能用,请自行查阅其他文章,欢迎沟通、指正。

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

相关文章

  • JS实现的合并多个数组去重算法示例

    JS实现的合并多个数组去重算法示例

    这篇文章主要介绍了JS实现的合并多个数组去重算法,涉及javascript数组遍历、判断、运算、排序等相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • 深入理解Javascript中this的作用域

    深入理解Javascript中this的作用域

    这篇文章主要介绍了深入理解Javascript中this的作用域,本文用大量例子来深入探讨this的作用域,需要的朋友可以参考下
    2014-08-08
  • 纯javascript响应式树形菜单效果

    纯javascript响应式树形菜单效果

    这篇文章主要为大家分享了纯javascript响应式树形菜单效果的简单教程,对多级目录树形菜单感兴趣的小伙伴们可以参考一下
    2015-11-11
  • javascript检查浏览器是否支持flash的实现代码

    javascript检查浏览器是否支持flash的实现代码

    这篇文章主要介绍了javascript检查浏览器是否支持flash的实现代码,需要的朋友可以参考下
    2014-08-08
  • javaScript代码飘红报错看不懂?读完这篇文章再试试

    javaScript代码飘红报错看不懂?读完这篇文章再试试

    这篇文章主要介绍了javaScript代码飘红报错看不懂?读完这篇文章再试试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 分享一个插件实现水珠自动下落效果

    分享一个插件实现水珠自动下落效果

    本篇文章给大家分享一个插件制作水珠自动下落效果,效果非常逼真,感兴趣的朋友可以添加下面代码运行看看效果哦
    2016-06-06
  • uni-app中实现元素拖动效果

    uni-app中实现元素拖动效果

    这篇文章主要介绍了uni-app中实现元素拖动效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • 详解webpack引入第三方库的方式以及注意事项

    详解webpack引入第三方库的方式以及注意事项

    这篇文章主要介绍了详解webpack引入第三方库的方式以及注意事项,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • JS原型对象操作实例分析

    JS原型对象操作实例分析

    这篇文章主要介绍了JS原型对象操作,结合实例形式分析了JS原型对象基本原理、用法及操作注意事项,需要的朋友可以参考下
    2020-06-06
  • JavaScript File API文件上传预览

    JavaScript File API文件上传预览

    这篇文章主要为大家详细介绍了JavaScript File API实现文件上传预览的详细代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02

最新评论