lunes, 28 de julio de 2008

Copiar texto con javascript que funciona con todos los navegadores.

Recientemente buscaba como copiar texto al portapapeles (clipboard) con javascript. Me topé con que solo Internet Explorer tiene una función que lo permite:

var rango = Elemento.createTextRange();
if (rango)
rango.execCommand('Copy');


Bueno pero como todo buen programador web, yo estaba buscando algo que funcionara en todos los navegadores. Buscando encontré una solución: usar un flash que copiara el texto por mí. La idea es pasarle el texto al flash como parámetro y que éste se encarge de copiarlo.

Este es el código javascript de la función de copia:

function copy(inElement) {
if (inElement.createTextRange) {
var range = inElement.createTextRange();
if (range)
range.execCommand('Copy');
} else {
var flashcopier = 'flashcopier';
if(!document.getElementById(flashcopier)) {
var divholder = document.createElement('div');
divholder.id = flashcopier;
document.body.appendChild(divholder);
}
document.getElementById(flashcopier).innerHTML = '';
var divinfo = '';
document.getElementById(flashcopier).innerHTML = divinfo;
}
}


y aquí pueden descargar el .swf necesario.

Tomado de: http://www.jeffothy.com/weblog/clipboard-copy/

No hay comentarios: