您现在的位置是:Javascript基础>>

兼容IE和Firefox的JS复制函数

发布日期2009-7-31 15:27:38
作者shemily
出处重用网
浏览次数...
今日浏览...
本月浏览...
我要留言我要留言
摘要
经常需要用到将网页上的部分文字内容复制到剪贴板,方便用户粘贴使用
详细内容

从网上搜集而来的相对比较可靠的javascript复制代码:

 

<script type="text/javascript">

/* copy to clipboard */
copyToClipboard=function(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("您的firefox安全限制限制您进行剪贴板操作,请打开’about:config’将signed.applets.codebase_principal_support’设置为true’之后重试。");
   return false;
  }
  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>

 

传递进去的参数为字符串,

经常是input或者textarea文本框的内容,

调用如:

if(copyToClipboard(document.getElementById(´someinput´).value)!=false){
  alert("生成的代码已经复制到粘贴板,你可以使用Ctrl+V 贴到需要的地方去了哦!  ");
}

我要留言我要留言  
赞助商提供