现在不使用ZeroClipboard我们也能实现复制功能(转)
现在不使用ZeroClipboard我们也能实现
首先,我们保证页面结构不变,但不在引入ZeroClipboard插件:
1 <input type="text" name="" id="J_TextIn" value="Copy Test.">
2 <input type="button" value="Copy" id="J_DoCopy">
然后,我们使用 document.execCommamd来对内容进行复制:
(function(){
2 var btn = document.getElementById('J_DoCopy'),
3 text = document.getElementById('J_TextIn');
4 btn.onclick = function(){
5 var transfer = document.getElementById('J_CopyTransfer');
6 if (!transfer) {
7 transfer = document.createElement('textarea');
8 transfer.id = 'J_CopyTransfer';
9 transfer.style.position = 'absolute';
10 transfer.style.left = '-9999px';
11 transfer.style.top = '-9999px';
12 document.body.appendChild(transfer);
13 }
14 transfer.value = text.value;
15 transfer.focus();
16 transfer.select();
17 document.execCommand('Copy', false, null);
18 };
19 })();
接着,我们在浏览器中浏览,和使用ZeroClipboard时一样的去操作,效果是一样的。但是,这段代码的正确执行是有限制的,因为 document.execCommand 在Chrome中支持的比较晚,所以要求Chrome版本必须是43及以后。
最后,再补充说明一下,使用 document.execCommand 来实现复制内容时,过渡被复制内容的 textarea 标签(即:动态创建的那个textarea标签),在复制可输入区域(input:text,textarea)的内容时并不是必须的,可以直接简化为:
1 (function(){
2 var btn = document.getElementById('J_DoCopy'),
3 text = document.getElementById('J_TextIn');
4 btn.onclick = function(){
5 text.focus();
6 text.select();
7 document.execCommand('Copy', false, null);
8 text.blur();
9 };
10 })();
考虑到实际使用中,我们可能需要复制一些非编辑区域提供的内容(比如:一个a标签的链接地址等),所以增加了一个过渡的texearea,似乎更保险,更灵活一些。
此外,我再测试过程中,曾试图将过渡的那个textarea设置为不可见的 visibility:hidden; ,却发现复制功能失效了,所以这里需要注意一下...
现在不使用ZeroClipboard我们也能实现复制功能(转)的更多相关文章
- 兼容多浏览器的网页复制插件(ZeroClipboard)
前言: 常规利用JS编写的网页复制功能是最简单的方法,但是只对IE有效,无法做到兼容其它浏览器,对其他浏览器也就只能弹窗提示用户手动复制了. <script type="text/ja ...
- zeroclipboard浏览器复制插件使用记录
一个简单例子: <html> <body> <button id="copy-button" data-clipboard-text="Co ...
- ZeroClipboard跨浏览器复制粘贴
<!DOCTYPE html> <html> <head> <title>ZeroClipboard跨浏览器复制粘贴</title> < ...
- 使用ZeroClipboard解决跨浏览器复制到剪贴板的问题
Zero Clipboard的实现原理Zero Clipboard 利用透明的Flash让其漂浮在复制按钮之上,这样其实点击的不是按钮而是 Flash ,这样将需要的内容传入Flash,再通过Flas ...
- ZeroClipboard 复制到剪贴板
使用 ZeroClipboard 可以简单的将内容复制到剪贴板,通过 Adobe Flash 和 JavaScript 来实现.“Zero” 意义为这个类库没有界面,界面需要由你来建立. 版本: Ze ...
- ZeroClipboard – 轻松实现复制文本到剪贴板功能
ZeroClipboard 库提供了一种把文本复制到剪贴板的简单方法.Zero 表示该库是不可见的,用户界面则完全取决于你. 该库完全兼容 Flash Player 10.0.0 或以上版本,这就要求 ...
- ZeroClipboard / jquery.zclip.min.js跨浏览器复制插件使用中遇到的问题解决
之前写过一个淘宝优惠券连接PC端转手机端连接的小工具,当时写到将转换好的url复制到剪切板这块时解决了IE和火狐,就是没办法搞定Chrome,知道可以通过flash搞定,但是觉得太麻烦没有仔细研究. ...
- 【ZeroClipboard is not defined】的解决方法
参考:http://www.cnblogs.com/jfw10973/p/3921899.html https://github.com/zeroclipboard/zeroclipboard 近期该 ...
- ZeroClipboard 插件实现文本复制到剪贴板
ZeroClipboard 的官网 点这里,github地址 点这里. 事例如下: 在引入 ZeroClipboard.js 之后, <button id="clip_button&q ...
随机推荐
- ORACLE之PACKAGE-游标变量
刚学pl/sql编程,写了两个package.pkg_temp_fn31和pkg_temp_fn32.内容涉及pl/sql基本语法,游标变量,存储过程(in,out). pkg_temp_fn31调用 ...
- Linux 命令 - cp: 拷贝文件和目录
命令格式 cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY ...
- C#中显/隐式实现接口及其访问方法
原贴地址: http://www.cnblogs.com/dudu837/archive/2009/12/07/1618663.html 在实现接口的时候,VS提供了两个菜单,一个是"实现接 ...
- 第一篇、微信小程序_01计算器
官方文档地址:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html 一.计算器的首页布局 第一部分WXML: <view class=&quo ...
- SharePoint Server 2013介绍v2
SharePoint Server 2013介绍v2 http://wenku.baidu.com/link?url=rNYYoDmHcXmqhzOeA1sln5cS2xcnABYycBuz8Z4Oq ...
- ZigBee 入网详解
本文将根据Sniffer来详细解释ZigBee终端设备入网的整个流程,原创博文. 当协调器建立好网络后,终端设备执行zb_startrequest函数,准备入网时,他们两者之间详细的流程如下.
- Tomcat虚拟目录的设置
在学习JSP/Servlet的过程中,配置Tomcat的虚拟目录可能是我们遇到的第一个比较麻烦的问题,说是麻烦是针对我们初学者而言,对于高手那都不是问题.反正我是弄了一天才配置好,发现网上给出的很多配 ...
- 学习笔记--Quartz定时器
文章同步发表在博主网站朗度云,传输门:http://www.wolfbe.com/detail/201608/338.html 1.Quartz定时器执行流程 Quartz需要定义执行任务.触发器,在 ...
- css圆角 四边投影
-moz-border-radius: 30px;-webkit-border-radius: 30px; border-radius:30px; -webkit-box-shadow:0 0 10p ...
- Mongodb学习使用记录
在学习使用Mongodb中,对map和reduce的定义,以及对 mapReduce() 方法的调用: >map #在直接输入map时会出现一个'map is not defined'的异常错误 ...