方案一:利用“window.clipboardData”
代码示例:
- if (window.clipboardData) {
- window.clipboardData.clearData();
- window.clipboardData.setData("Text", txt) };
方案二:利用“Components.interfaces.nsIClipboard”
- if (window.netscape) {
- try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
- } catch (e) {
- if (flag == 0) {
- alert("You are using the Firefox browser, copy the function browser refuse!
- \nPlease in the browser address bar enter'about:config' and Enter \n and set'signed.applets.codebase_principal_support' to 'true'");
- } else {
- alert("你使用的是Firefox 浏览器,复制功能被浏览器拒绝!\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);
- }
if (window.netscape) { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); } catch (e) { if (flag == 0) { alert("You are using the Firefox browser, copy the function browser refuse! \nPlease in the browser address bar enter'about:config' and Enter \n and set'signed.applets.codebase_principal_support' to 'true'"); } else { alert("你使用的是Firefox 浏览器,复制功能被浏览器拒绝!\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); }
方案三:javascript + flash
- varflashcopier ='flashcopier';
- if(!document.getElementById(flashcopier)) {
- vardivholder = document.createElement('div');
- divholder.id = flashcopier;
- document.body.appendChild(divholder);
- }
- document.getElementById(flashcopier).innerHTML ='';
- vardivinfo ='<embed src="clipboard.swf" FlashVars="clipboard='+ text2copy +'"
- width="0" height="0" type="application/x-shockwave-flash"></embed>';
- document.getElementById(flashcopier).innerHTML = divinfo;}
varflashcopier ='flashcopier'; if(!document.getElementById(flashcopier)) { vardivholder = document.createElement('div'); divholder.id = flashcopier; document.body.appendChild(divholder); } document.getElementById(flashcopier).innerHTML =''; vardivinfo ='<embed src="clipboard.swf" FlashVars="clipboard='+ text2copy +'" width="0" height="0" type="application/x-shockwave-flash"></embed>'; document.getElementById(flashcopier).innerHTML = divinfo;}