一键复制链接

目标

实现点击按钮, 复制当前页面的URL

实现方法

利用input元素的setSelectionRange方法,以及document的execCommand方法。
首先,将input 元素的value值设置为当前页面的的url,(该input元素通常不应该显示在页面上,可以通过visibility: hidden样式将其设置不可见);
然后,利用setSelectionRange选中input元素对应范围的内容(此此处,选中内容即为当前页面的url);
最后,调用execCommand方法,调用copy命令,即可将选中的url复制到剪切板中。

注意:

  1. 调用setSelectionRange选择input元素中内容时,当前操作的input标签必须属于被选中的状态,即focus,因此需要先调用focus方法;

具体实现完整代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <p>点击复制后在右边textarea CTRL+V看一下</p>
  <input type="text" id="inputText" value="测试文本"/>
  <input type="button" id="btn" value="复制"/>
  <script type="text/javascript">
      var btn = document.getElementById('btn');
      btn.addEventListener('click', function(){
          var inputText = document.getElementById('inputText');
          inputText.focus();
          inputText.value = location.href;
          inputText.setSelectionRange(0, inputText.value.length);
          document.execCommand('copy', true);
      });
  </script>
</body>
</html>

相关文档

execCommand相关文档

setSelectionRange相关文档

CanIUse-setSelectionRange

CanIUse-execCommand

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,014评论 19 139
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 4,092评论 0 0
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,548评论 1 11
  • 第一章 入门 基本功能:访问和操作 dom 元素,控制页面样式,对页面的事件处理,与ajax完美结合,有丰富的插件...
    X_Arts阅读 1,068评论 0 2
  • 那一天,你出院。 穿好衣,戴好帽。 坐床沿,很落寞。 想照相,终没动。 赵家本,后人少。 百年后,谁人看。 未曾想...
    泊宁赵阅读 564评论 4 5