First, install ADDONS: greasemonkey DOM Inspector InspectThis go to firefox address space and type config:about Then go to the option signed.applets.codebase_principal_support = True A continuación ingresar en https://developer.mozilla.org/en/using_the_clipboard donde habla sobre las funciones del clipboard, sin embargo, es importante tener en cuenta la siguiente línea: netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect') Ya que es la que habilita los privilegios, de lo contrario va a fallar cualquier implementación. Para probarlo con el Shell de JavaScript es necesario poner el código en líneas seguidas, es decir, ingresando el código como se muestra a continuación: netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect') // Shift + Enter var text = "bah"; // Shift + Enter Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper).copyString(text) // Enter Esto lo que hace es, habilitar el acceso al clipboard, crear una variable de texto y luego con el servicio pegar la variable en el clipboard. Para realizar el pegado se tiene que realizar el siguiente script (si se pega así en el shell va a funcionar, desde que exista algo en el clipboard para pegar. es importante que el objeto a pegarlo (última líena) exista en la página donde se ingrese el javascript: netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); // Habilitación de privilegios para la página var clip = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper); // Se activa el Clipboard helper // if (!clip) retun false; // se comprueba que el Clipboard Helper existe var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable); // Se activa el objeto de transferencia // if (!trans) return false; // se comprueba que el objeto de transferencia existe trans.addDataFlavor("text/unicode"); // al objeto de transferencia se le da formato Text Unicode var clipid = Components.interfaces.nsIClipboard; // se crea una variable con "Components.interfaces.nsIClipboard var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(clipid); // se activa el Clipboard clip.getData(trans, clip.kGlobalClipboard); // se toman los datos del Clipboard y se ponen en la variable Trans (la cual tiene el formato Text Unicode var str = new Object(); // Se crea la variable str (string) var strLength = new Object(); // Se crea la variable strLength para guardar la cantidad de caracteres del objeto a transferir trans.getTransferData ("text/unicode", str, strLength); // Se transfiere la información de la variable trans a la variable str, con formato Text Unicode y con la cantidad de caracteres strLength if (str){ // si la variable str existe (debe existir, si no fuera así es por que el clipboard esta vacío) str = str.value.QueryInterface(Components.interfaces.nsISupportsString); // Se debe convertir el objeto XPCOM (str) a javascript, este código lo hace pastetext = str.data.substring(0, strLength.value / 2); // Se pone la información en la variable pastetext } document.getElementsByTagName('input')[4].value = pastetext; // finalmente, se elige donde debe ir la información y pegar el contenido correspondiente. --- Para probar en la página cuales son los campos 'input' permitidos se crea la siguiente fución: var t = documents.getElementsByTagName('input') // se guarda en la variable t el array de elementos que tienen por TagName 'INPUT' for (i = 0; i < t.length ; i++) { // desde 0 hasta todos los elemenentos del array T (es decir, todos los 'input') if (!t[i].value) { // sí el valor de t[i] no es valido... i = i + 1; // sumar 1 al indicador (pasar al siguiente elemento del array) } else { // sí el valor de t[i] es valido... t[i].value = i; // al elemento i del array le damos ese mismo valor, con esto sabemos que número en el array } } ---