Foros del Web » Programando para Internet » Javascript »

Copiar texto al clipboard

Estas en el tema de Copiar texto al clipboard en el foro de Javascript en Foros del Web. Hola señores Tengo un site al que para promocionar la idea prepare varios banners que la gente puede descargar y poner en sus blog's y ...
  #1 (permalink)  
Antiguo 13/10/2009, 15:24
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Copiar texto al clipboard

Hola señores

Tengo un site al que para promocionar la idea prepare varios banners que la gente puede descargar y poner en sus blog's y websites.

El caso es que para evitar poner un campo de texto que los interesados copien, preferi hacer un javascript que con solo dar un click al banner en cuestion se copie su codigo html al clipboard.

Luego de investigar lo suficiente, procure aplicar a mi script la parte del codigo que pueden ver aqui, incluido el swf. Lamentablemente no he podido lograr nada y hasta modifique el script de formas que entendia funcionaria, sin resultados.

En esta pagina pueden ver la muestra de lo que tengo actualmente hecho y aqui el javascript tal como lo estoy aplicando:

Código HTML:
function bannerCopyCode(id)
{
    var bn = document.getElementById(id).getElementsByTagName('img');
    //
    for (var i = 0; i < bn.length; i++)
    {
	   setCopy(bn[i]);
    }
    //
    function setCopy(im)
    {
        var imAlt = im.alt + ' | www.ceroe.info';
	   var imSrc = im.src + ' | www.ceroe.info';
	   var imCpy = '<a href="http://ceroe.info" target="_blank"><img src="' + imSrc + '" alt="' + imAlt + '" title="' + imAlt + '" /></a>';
	   //
        im.title = imAlt;
        //
        im.onclick = function ()
	   {
            setFlashCopy(imCpy);
	   }
    }
    //
    function setFlashCopy(str)
    {
        if(window.clipboardData)  
        {  
            window.clipboardData.setData('text',text);  
        }  
        else  
        {
            var clipboarddiv = document.getElementById('divclipboardswf');
            //
            if (clipboarddiv == null) 
            {
                clipboarddiv = document.createElement('div');
                clipboarddiv.setAttribute("name", "divclipboardswf");
                clipboarddiv.setAttribute("id", "divclipboardswf");
                document.body.appendChild(clipboarddiv);
            }
            //
            var cbData = '<embed src="clipboard.swf" FlashVars="texto=' + encodeURIComponent(str) + '" width="0" height="0" type="application/x-shockwave-flash"></embed>';
            //var cbData = '<embed src="clipboard.swf?texto=' + encodeURIComponent(str) + '" width="0" height="0" type="application/x-shockwave-flash"></embed>';
            //
            /*var cbData = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="0" height="0">';
            cbData += '<param name="movie" value="clipboard.swf?texto="' + encodeURIComponent(str) + '" />';
            cbData += '<embed src="clipboard.swf?texto="' + encodeURIComponent(str) + '" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="0" height="0"></embed>';
            cbData += '</object>';*/
            //
            clipboarddiv.innerHTML = cbData;
        }
    }
}
Me gustaria que lo revisaran a ver si estoy haciendo algo mal. Entiendo que Firefox por razones de seguridad no deja copiar con JS y por eso hay que apoyarse de Flash, pero es que ni el Flash, ni Explorer ni nada copia, asi que obviamente estoy haciendo algo mal que no logro encontrar.
__________________
JuniHH
- Mi blog
- Mi portafolio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:30.