博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用JS实现复制/粘贴功能
阅读量:7010 次
发布时间:2019-06-28

本文共 2237 字,大约阅读时间需要 7 分钟。

1、最基本的复制

  Java代码

  <script language="script">

  function readTxt()

  {

  alert(window.clipboardData.getData("text"));

  }

  function setTxt()

  {

  var t=document.getElementById("txt");

  t.select();

  window.clipboardData.setData('text',t.createTextRange().text);

  }

  </script>

  <input name="txt" value="测试">

  <input type="button" value="复制" οnclick="setTxt()">

  <input type="button" value="读取" οnclick="readTxt()">

  2、扩展复制:复制表格

  Java代码

  <INPUT TYPE="button" value="选中测试表格" οnclick="CopyTable()">

  测试

  <TABLE border="1" id="oTable">

  <TR>

  <TD>测试表格</TD>

  <TD>测试表格</TD>

  </TR>

  <TR>

  <TD>测试表格</TD>

  <TD>测试表格</TD>

  </TR>

  </TABLE>文字

  <SCRIPT LANGUAGE="JavaScript">

  <!--

  function CopyTable()

  {

  var txt = document.body.createTextRange();

  txt.moveToElementText(document.getElementById('oTable'));

  txt.select();

  }

  //-->

  </SCRIPT>

  、兼容IE,firefox等浏览器的复制

  Java代码

  <script>

  function copyToClipboard(txt) {

  if(window.clipboardData) {

  window.clipboardData.clearData();

  window.clipboardData.setData("Text", txt);

  } else if(navigator.userAgent.indexOf("Opera") != -1) {

  window.location = txt;

  } else if (window.netscape) {

  try {

  netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");

  } catch (e) {

  alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");

  }

  var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);

  if (!clip)

  return;

  var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);

  if (!trans)

  return;

  trans.addDataFlavor('text/unicode');

  var str = new Object();

  var len = new Object();

  var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);

  var copytext = txt;

  str.data = copytext;

  trans.setTransferData("text/unicode",str,copytext.length*2);

  var clipid = Components.interfaces.nsIClipboard;

  if (!clip)

  return false;

  clip.setData(trans,null,clipid.kGlobalClipboard);

  }

  }

  </script>

  <button οnclick="copyToClipboard('你好!');">复制文本“你好!”</button>

  <textarea id="test"></textarea>

转载地址:http://wtttl.baihongyu.com/

你可能感兴趣的文章
[iOS] 从 application delegate 引申三点
查看>>
深入理解Java虚拟机(一)
查看>>
Docker Nginx 静态资源部署
查看>>
DSA数字签名算法
查看>>
Mongodb Mac安装
查看>>
中间件事务码R3AC1里Block Size的含义
查看>>
实战Android 上推下拉——隐藏、显示ActionBar
查看>>
GDB 调试 Mysql 实战(二)GDB 调试打印
查看>>
Spring AOP(三) Advisor类架构
查看>>
LeetCode 316. Remove Duplicate Letters
查看>>
第十三课时:递归组件的使用
查看>>
【跃迁之路】【712天】程序员高效学习方法论探索系列(实验阶段469-2019.2.2)...
查看>>
SpiderData 2019年2月18日 DApp数据排行榜
查看>>
react-refetch的使用小例子
查看>>
周末游攻略 - 南昌之行
查看>>
tcpdump查看Nginx长连接还是短连接
查看>>
Vue+thinkJs博客网站(二)之thinkJs的使用
查看>>
Electron学习笔记:主进程与渲染进程的通信方式
查看>>
JVM(六)为什么新生代有两个Survivor分区?
查看>>
Spark是一种基本的开源大数据技术
查看>>