JS实现复制功能

 1 <!DOCTYPE html>
 2 <html lang="en">
 3
 4 <head>
 5     <meta charset="UTF-8">
 6     <title>js复制</title>
 7     <link href="../stylesheets/mdstyle.css" rel="stylesheet" type=‘text/css‘/>
 8     <style type="text/css">
 9         #cptext{
10             color: red;
11         }
12     </style>
13 </head>
14
15 <body>
16     <article class="markdown-body">
17         <p>第一种复制方式:复制input输入框中的内容</p>
18         <input type="text" id="website" value="http://yuedun.duapp.com" style="display:block;" />
19         <button data-copytarget="#website" onclick="copy(event)">copy</button>
20         <pre>
21             <code class="javascript">
22 function copy(e) {
23     // 搜索目标元素
24     var
25         t = e.target,
26         c = t.dataset.copytarget,
27         inp = (c ? document.querySelector(c) : null);
28     // 判断元素是否能被选中
29     if (inp) {
30         inp.style.display = ‘block‘;
31         // 选择文本
32         inp.select();
33         try {
34             // 复制文本
35             document.execCommand(‘copy‘);
36             inp.style.display = ‘none‘;
37             inp.blur();
38         } catch (err) {
39             alert(‘please press Ctrl/Cmd+C to copy‘);
40         }
41     }
42 }
43             </code>
44         </pre>
45         <hr>
46         <p>第二种复制方式:复制普通标签中的文本</p>
47         <p id="cptext">这是第二种方式复制的内容</p>
48         <button data-copytarget="#cptext" onclick="copy2(event)">copy</button>
49         <pre>
50             <code class="javascript">
51 function copy2(e) {
52     var urlField = document.querySelector(‘#cptext‘);
53     var range = document.createRange();
54     urlField.style.display = "block";
55     range.selectNode(urlField);
56     window.getSelection().addRange(range);
57     document.execCommand(‘copy‘);
58     window.getSelection().removeAllRanges();
59     urlField.style.display="none"
60 }
61             </code>
62         </pre>
63     </article>
64     <script>
65         function copy(e) {
66             // 搜索目标元素
67             var
68                 t = e.target,
69                 c = t.dataset.copytarget,
70                 inp = (c ? document.querySelector(c) : null);
71             // 判断元素是否能被选中
72             if (inp) {
73                 // inp.style.display = ‘block‘;
74                 // 选择文本
75                 inp.select();
76                 try {
77                     // 复制文本
78                     document.execCommand(‘copy‘);
79                     // inp.style.display = ‘none‘;
80                     inp.blur();
81                 } catch (err) {
82                     alert(‘please press Ctrl/Cmd+C to copy‘);
83                 }
84             }
85         }
86         function copy2(e) {
87             var urlField = document.querySelector(‘#cptext‘);
88             var range = document.createRange();
89             // urlField.style.display = "block";
90             range.selectNode(urlField);
91             window.getSelection().addRange(range);
92             document.execCommand(‘copy‘);
93             window.getSelection().removeAllRanges();
94             // urlField.style.display="none"
95         }
96     </script>
97 </body>
98
99 </html>

本文来自  http://www.hopefully.wang/views/copy.html

时间: 2024-10-05 10:53:56

JS实现复制功能的相关文章

js中复制功能总结

目前copy主流有四种方式:ZeroClipboard,Clipboard.js,execCommand,setData,clipboardData 概况: ZeroClipboard 就是常说的Flash法,通过加载一个Flash,让其访问系统剪贴板来绕过绝大多数系统的权限限制,然而体积稍微庞大些 Clipboard.js 近几年使用较多,体积相对小,兼容性可以接受,使用还比较方便. execCommand 新兴势力,safari等主流正在努力兼容,是个好东西. setData 太老..一般不

js一键复制功能、几乎兼容所有浏览器

html内容 <div hidden id="keydiv">Hello World</div> <btn class="btn btn-sm btn-default" onclick="copyText()">点此复制</btn> js代码 function copyText() { var Url2 = document.getElementById("keydiv").in

javascript 点击触发复制功能

摘要: js调用复制功能使用: document.execCommand("copy", false); document.execCommand()方法功能很强大,了解更多请戳:https://developer.mozilla.org/zh-CN/docs/Web/API/Document/execCommand 正文: 调用以上方法,就实现了copy功能,可是,在调用之前,你需要先选中需要复制的内容. 选中需要复制的内容可使用select()方法,然而该方法只能选中input或者

8年javascript知识点积累

08年毕业就开始接触javascript,当时是做asp.net发现很多功能用asp.net控件解决不了,比如checkbox单选,全选问题,自动计算总价问题,刷新问题,等等.那时感觉javascript好讨厌,没有好的框架和调试工具,痛不欲生.如今javascript框架漫天飞舞,jquery,zepto,AngularJs,各种应用层出不穷,动画,游戏,单页网站,甚至手机app,那里都少不了javascript,不禁感叹,还有没有javascript不能做的事情么? 8年了,如今多半时间是管

jquery第三方插件

(1): Cookie插件jquery.cookie.js (2):jquery.easing.js js动画效果的js   解释当然在这里 http://www.helloweba.com/view-blog-212.html (3):jquery.json.js   Jquery-json 是 jQuery 的一个插件,可轻松实现对象和 JSON 字符串之间的转换.可序列化 JavaScript 对象.数值.字符串和数组到 JSON 字符串,同时可转换 JSON 字符串到 JavaScrip

js 完美兼容浏览器的复制功能

1,js结合swf的复制功能,完美兼容火狐,谷歌,360,ie8,使用示例:(ps:引入copy.swf比较重要,文件传送门 解压密码:http://www.bieanju.com/,为了防止360删除文件请解压后去除后缀的1) function copyText(){        var clip = new ZeroClipboard.Client();         clip.setHandCursor(true);                //var text= documen

Zero Clipboard js+swf实现的复制功能使用方法

开发中经常会用到复制的功能,在 IE 下实现比较简单.但要想做到跨浏览器比较困难了.本文将介绍一个跨浏览器的库类 Zero Clipboard .它利用 Flash 进行复制,所以只要浏览器装有 Flash 就可以运行,而且比 IE 的 document.execCommand("Copy") 更加灵活. Zero Clipboard 的实现原理 Zero Clipboard 利用 Flash 进行复制,之前有 Clipboard Copy 解决方案,其利用的是一个隐藏的 Flash.

js兼容各个浏览器的复制功能

看似简单的复制功能,用js做起来竟然遇到各种情况.刚开始在网上搜索到复制功能的几种实现方法,但是都不兼容.最后还是用的插件代码如下 html模板 <tr> <td>1</td> <td>小明</td> <td style="position:relative;"> <input style="width:350px; height:28px; border:none;background:none;

js插件实现一键复制功能

clipboard.js 可以实现纯 JS 的从浏览器复制文本到系统剪贴板的功能. 使用方法: 1. 下载 clipboard.js,并在页面中引入该插件.clipboard.js 下载地址: https://github.com/zenorocha/clipboard.js <script src="/lib/js/clipbaord.js"></script> 2. 需要复制的目标文本 <span id="tar_text" >