设定及获取剪切板中的值
来源:互联网 发布:增值税发票软件app 编辑:程序博客网 时间:2024/06/05 18:39
<html><head><title>onpaste event example</title></head><body><h3>Play with this editor!</h3><div> <span style="color:red">Copy this text.</span></div><textarea id="editor" rows="3" cols="80">Try pasting text into this area!</textarea><div id="editdiv" contenteditable="true">..</div><script type="text/javascript">//Firefox下Clipboard的读写js脚本/**************************************************将字符串maintext复制到剪贴板**************************************************/function setClipboard(maintext) { if (window.clipboardData) { return (window.clipboardData.setData("Text", maintext)); } else if (window.netscape) { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); 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=maintext; 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); return true; } return false;}/**************************************************返回剪贴板的内容**************************************************/function getClipboard() { if (window.clipboardData) { return(window.clipboardData.getData('Text')); } else if (window.netscape) { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); 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'); clip.getData(trans,clip.kGlobalClipboard); var str = new Object(); var len = new Object(); try { trans.getTransferData('text/unicode',str,len); } catch(error) { return null; } if (str) { if (Components.interfaces.nsISupportsWString) str=str.value.QueryInterface(Components.interfaces.nsISupportsWString); else if (Components.interfaces.nsISupportsString) str=str.value.QueryInterface(Components.interfaces.nsISupportsString); else str = null; } if (str) { return(str.data.substring(0,len.value / 2)); } } return null;} function log(txt) { document.getElementById("log").appendChild(document.createTextNode(txt + "\n")); } function pasteIntercept(evt) { var txt = getClipboard(); setClipboard(txt); log("Pasting!"); } document.getElementById("editor").addEventListener("paste", pasteIntercept, false); document.getElementById("editdiv").addEventListener("paste", pasteIntercept, false);</script><h3>Log</h3><textarea rows="15" cols="80" id="log" readonly="true"></textarea></body></html>