www.krikkit.net

...don´t Panic!

  • Increase font size
  • Default font size
  • Decrease font size

copy text to clipboard with javascript

Print PDF

a very popular article about how to copy text to clipboard out of HTML with javascript in firefox/mozilla/netscape and IE

this is a javascript that i built out of several sources so that it is possible to copy text out of HTML in firefox/mozilla/netscape and in Internet Explorer

large parts of that script are copied from other sources, thats why there are dutch comments ;-)

this script only works in mozilla if you sign the javascript or if you change some settings in firefox... see notes below...

<script language="javascript" type="text/javascript">
<!--

// Copyright (C) krikkit - This e-mail address is being protected from spambots. You need JavaScript enabled to view it
// --> http://www.krikkit.net/
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.

function copy_clip(meintext)
{
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>

 

to call that script out of your HTML use e.g. this code:

<span onclick='return copy_clip("this is your personal text")'>

test this script:

click somewhere on this line to copy some text to your clipboard (you should have the text "Hello World, from www.krikkit.net!" in your clipboard afterwards)

 

notes about security:

a cause of the tight security settings in mozilla you have to sign the javascript to make it work another way is to change your firefox/mozilla settings

to do this add this line to your prefs.js file in your firefox/mozilla user profile directory

user_pref("signed.applets.codebase_principal_support", true);

or change it from within the browser with calling the "about:config" page

 

 

huge parts of the script are directly copied from the following sources:

http://www.xulplanet.com/tutorials/xultu/clipboard.html
http://www.codebase.nl/index.php/command/viewcode/id/174

 

Last Updated on Thursday, 10 September 2009 15:26