copy to or from Clipboard
/Html JavaSript/Inutile/copy to or from Clipboard.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Javascript - Copy from clipboard - Copy to clipboard</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<meta name="description" content="Javascript for copy data from/to clipboard for Mozilla and IE" />
<meta name="keywords" content="javascript, clipboard, copy, mozilla, IE, clipboardData" />
<script type="text/javascript">
// ----------------------------------------------------------------------------
function setClipboard(txt) {
if (window.clipboardData) {
// the IE-manier
window.clipboardData.setData("Text", txt);
} else if (window.netscape) {
// the Mozilla secure manier
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 = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
str.data=txt;
trans.setTransferData("text/unicode", str, txt.length*2);
var clipid=Components.interfaces.nsIClipboard;
if (!clip) return false;
clip.setData(trans, null, clipid.kGlobalClipboard);
}
return;
}
// ----------------------------------------------------------------------------
function getClipboard() {
if (window.clipboardData) {
// the IE-manier
return(window.clipboardData.getData('Text'));
} else if (window.netscape) {
// the Mozilla secure manier
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();
clip.getData(trans, clip.kGlobalClipboard);
try { trans.getTransferData('text/unicode', str, len); }
catch(error) { return; }
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;
}
</script>
</head>
<body>
<div>
<div style="color:red">
!!! Only work on Mozilla if the script is signed !!!<br/>
!!! Ne fonctionne sous Mozilla que si le script est signé !!!</br>
</div>
<form action="#">
<fieldset>
<textarea id="txtin" cols="50" rows="5">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod</textarea><br/>
<input type="button" value="copy to clipboard (IE and Mozilla)" onclick="setClipboard(document.getElementById('txtin').value)"/><br/>
<hr/>
<input type="button" value="copy from clipboard (IE and Mozilla)" onclick="document.getElementById('txtout').value=getClipboard()"/><br/>
<textarea id="txtout" cols="50" rows="5"></textarea><br/>
</fieldset>
</form>
</div>
</body>
</html>