Forum Moderators: open
I am not aware of a cross-browser way of to copy to the windows clipboard without problems. You can do it in IE, and you can do it in Mozilla though Mozilla will ask you to verify that it is okay to run such an unsafe command.
That having been said, here is some code that I came across a while back:
<script type="text/javascript">
<!--
function ClipBoard()
{
meintext=document.getElementById('txtTest').value
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)
{
// 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("Following info was copied to your clipboard:\n\n" + meintext);
return false;
}
//-->
</script>
<style type="text/css">
</style>
</head>
<body>
<input type="text" id="txtTest" />
<button onclick="ClipBoard()">Copy</button>
</body>
ajkimoto
P.S. These two lines are superfluous, and {are better/can be safely} removed.
// 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();