利用JS实现复制/粘贴功能

1、最基本的复制

  Java代码

  <script language="javascript">

  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="复制" onclick="setTxt()">

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

  2、扩展复制:复制表格

  Java代码

  <INPUT TYPE="button" value="选中测试表格" onclick="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 onclick="copyToClipboard('你好!');">复制文本“你好!”</button>

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

posted @ 2012-01-11 10:08  左正  阅读(998)  评论(0编辑  收藏  举报