js兑现兼容IE和FF的复制功能

js实现兼容IE和FF的复制功能function fn_copy(meinId) { var meintext document.getElementById(meinId)

js实现兼容IE和FF的复制功能

function fn_copy(meinId) { var meintext = document.getElementById(meinId).innerHTML; if (window.clipboardData) {  // the IE-manier  window.clipboardData.setData("Text", meintext);  // waarschijnlijk niet de beste manier om Moz/NS te detecteren;  // het is mij echter onbekend vanaf welke versie dit precies werkt: } else if (window.netscape) {  try {   netscape.security.PrivilegeManager     .enablePrivilege("UniversalXPConnect");  } catch (e) {   alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");  }  // dit is belangrijk maar staat nergens duidelijk vermeld:  // you have to sign the code to enable this, or see notes below  // netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');  // maak een interface naar het clipboard  var clip = Components.classes['@mozilla.org/widget/clipboard;1']    .createInstance(Components.interfaces.nsIClipboard);  if (!clip)   return;  // maak een transferable  var trans = Components.classes['@mozilla.org/widget/transferable;1']    .createInstance(Components.interfaces.nsITransferable);  if (!trans)   return;  // specificeer wat voor soort data we op willen halen; text in dit geval  trans.addDataFlavor('text/unicode');  // om de data uit de transferable te halen hebben we 2 nieuwe objecten  // nodig om het in op te slaan  var str = new Object();  var len = new Object();  var str = Components.classes["@mozilla.org/supports-string;1"]    .createInstance(Components.interfaces.nsISupportsString);  var copytext = meintext;  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); } alert("已复制到剪贴版"); return false;}

?

?

页面:

<span id="text">copy test</span> [<span id="copy"><a href="#" onclick="fn_copy('text');">复制链接</a></span>]