Código de JavaScript - Copiar al portapapeles

Requerimientos

En IE aparece un mensaje indicando "Desea permitir que esta página web obtenga acceso al Portapapeles?" Para solucionar-lo: Herramientas->Opciones de Internet->Seguridad->Nivel Personalizado.
En la sección Automatización, en Permitir operaciones de pegado por medio de una secuencia de comandos, seleccionar Habilitar.

En Firefox, hay que poner en la url del navegador: about:config
Buscar la regla: "signed.applets.codebase_principal_support" y ponerla a "true" con una doble pulsación del ratón.

Versión 1
estrellaestrellaestrellaestrellaestrella(6)

Publicado el 29 de Junio del 2009gráfica de visualizaciones de la versión: Versión 1
29.992 visualizaciones desde el 29 de Junio del 2009
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- http://www.lawebdelprogramador.com -->
<html>
<head>
    <title>Copiar al portapapeles</title>
 
    <script type="text/javascript">
    function copyClipboard()
    {
        content=document.formName.campo1.value;
        // Para IE
        if(window.clipboardData && clipboardData.setData)
        {
            window.clipboardData.setData("Text", content);
        }else{
            // Para Firefox
 
            // You have to sign the code to enable this or allow the action in about:config by changing
            //user_pref("signed.applets.codebase_principal_support", true);
            netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
 
            var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
            if (!clip) return;
 
            // create a transferable
            var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
            if (!trans) return;
 
            // specify the data we wish to handle. Plaintext in this case.
            trans.addDataFlavor('text/unicode');
 
            // To get the data from the transferable we need two new objects
            var str = new Object();
            var len = new Object();
 
            var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
 
            var copytext=content;
 
            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);
        }
    }
    </script>
</head>
 
<body>
    <form name="formName">
        <div><input type="text" name="campo1" size="100" value="Hola. Este texto es el que vamos a copiar al portapapeles." /></div>
        <div><input type="button" value="Copiar" onclick="javascript:copyClipboard()"></div>
    </form>
</body>
</html>



Comentarios sobre la versión: Versión 1 (6)

CARMEN ESPINOZA
8 de Julio del 2009
estrellaestrellaestrellaestrellaestrella
Titulo: Copiar al portapapeles
Lenguaje: JavaScript
Código que muestra como copiar un texto de un formulario al portapapeles. Probado en IE 5,6,7 y Firefox 2.0,3.0

En IE aparece un mensaje indicando "Desea permitir que esta página web obtenga acceso al Portapapeles?" Para solucionar-lo: Herramientas->Opciones de Internet->Seguridad->Nivel Personalizado.
En la sección Automatización, en Permitir operaciones de pegado por medio de una secuencia de comandos, seleccionar Habilitar.

En Firefox, hay que poner en la url del navegador: about:config
Buscar la regla: "signed.applets.codebase_principal_support" y ponerla a "true" con una doble pulsación del ratón.
Responder
Hugo cardoso
16 de Julio del 2009
estrellaestrellaestrellaestrellaestrella
Muy buen aporte. Funciona bien. Aunque la parte final (Automatización), tiene otra opción que hace referencia al portapapeles.

Gracias.
Responder
modchip
10 de Febrero del 2010
estrellaestrellaestrellaestrellaestrella
Hola, el código funciona bien si se lanza desde un html pero si se incluye en un archivo php no funciona:
El código guardado como prueba.html=funciona pero
El código guardado como prueba.php=no funciona

Supongo que no tengo formación suficiente en php pero no logro entender por qué no funciona si alguien pudiera explicarme...
Responder
ezequiel
4 de Mayo del 2010
estrellaestrellaestrellaestrellaestrella
Exelent, igual me trajo algunas dificultades, pero seguro que son mías al conundir algunos pasos. en about:config,

saludos !
Responder
Gustavo
13 de Julio del 2011
estrellaestrellaestrellaestrellaestrella
En IE 8 funciona bien, pero en FireFox 6 no, como puedo hacer??
Responder
Gustavo
13 de Julio del 2011
estrellaestrellaestrellaestrellaestrella
Agrego, tampoco en Opera 10, Chrome ni safari 5.0.5
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s1825