Foros del Web » Programando para Internet » Javascript »

Seleccionar y copiar todo con javascript

Estas en el tema de Seleccionar y copiar todo con javascript en el foro de Javascript en Foros del Web. Como puedo seleccionar todo el contenido de una pagina web y copiarlo con una funcion de javascript? he visto que se puede hacer con el ...
  #1 (permalink)  
Antiguo 31/03/2009, 19:28
 
Fecha de Ingreso: septiembre-2007
Mensajes: 150
Antigüedad: 16 años, 7 meses
Puntos: 1
Exclamación Seleccionar y copiar todo con javascript

Como puedo seleccionar todo el contenido de una pagina web y copiarlo con una funcion de javascript? he visto que se puede hacer con el texto de un texarea o textfield, pero mi objetivo es copiar todo, como cuando se apreta ctrl+e y luego ctrl+c, para seleccionar todo y copiarlo.
  #2 (permalink)  
Antiguo 31/03/2009, 19:36
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Seleccionar y copiar todo con javascript

Así:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<script>
function seleccionar(obj){
    if(obj.nodeName.toLowerCase()=='textarea' || (obj.nodeName.toLowerCase()=='input' && obj.type=='text')){
        obj.select();
        return;
    }
    if (window.getSelection) { 
        var sel = window.getSelection();
        var range = document.createRange();
        range.selectNodeContents(obj);
        sel.removeAllRanges();
        sel.addRange(range);
    } 
    else if (document.selection) { 
        document.selection.empty();
        var range = document.body.createTextRange();
        range.moveToElementText(obj);
        range.select();
    }
}
</script>
</head>

<body>

<a href="#" onclick="seleccionar(document.body)">seleccionar</a>
</body>
</html>
  #3 (permalink)  
Antiguo 31/03/2009, 19:39
 
Fecha de Ingreso: septiembre-2007
Mensajes: 150
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Seleccionar y copiar todo con javascript

Genial gracias amigo, pero como podria con ese mismo boton copiar lo que seleccionó?
  #4 (permalink)  
Antiguo 31/03/2009, 19:42
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Seleccionar y copiar todo con javascript

Te toca trabajar un poco a vos, no te parece? ;)
  #5 (permalink)  
Antiguo 31/03/2009, 19:46
 
Fecha de Ingreso: septiembre-2007
Mensajes: 150
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Seleccionar y copiar todo con javascript

jejeje, si en eso estoy, buzeando en la web... ;)
  #6 (permalink)  
Antiguo 31/03/2009, 20:09
 
Fecha de Ingreso: septiembre-2007
Mensajes: 150
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Seleccionar y copiar todo con javascript

Cita:
Iniciado por Panino5001 Ver Mensaje
Te toca trabajar un poco a vos, no te parece? ;)
Hasta que me salio:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<script>
function seleccionar(obj){
    if(obj.nodeName.toLowerCase()=='textarea' || (obj.nodeName.toLowerCase()=='input' && obj.type=='text')){
        obj.select();
        return;
    }
    if (window.getSelection) { 
        var sel = window.getSelection();
        var range = document.createRange();
        range.selectNodeContents(obj);
        sel.removeAllRanges();
        sel.addRange(range);
    } 
    else if (document.selection) { 
        document.selection.empty();
        var range = document.body.createTextRange();
        range.moveToElementText(obj);
        range.select();
    }
}
</script>
<script type="text/javascript">

function CopyToClipboard()

{

   CopiedTxt = document.selection.createRange();

   CopiedTxt.execCommand("Copy");

}

</script>
</head>

<body>

<p><a href="#" onclick="seleccionar(document.body); CopyToClipboard();">Seleccionar&amp;Copiar</a></p>
<p>&nbsp;</p>
</body>
</html> 
  #7 (permalink)  
Antiguo 29/03/2010, 15:24
 
Fecha de Ingreso: marzo-2009
Mensajes: 133
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Seleccionar y copiar todo con javascript

Hola alexisfch


Estuve probando tu código ya que me intersa hacer algo similar a lo tuyo, y funciona correctamente en IE, pero cuando lo pruebo en FireFox, no funciona del todo bien. Creo que seria bueno que lo pruebes en varios navegadores


Tal vez el problema esté en .execCommand("Copy");

ExecComen no es Standar, aquí te paso el link de una lista de compatibilidades

http://www.quirksmode.org/dom/execCommand.html

Saludos y suerte!!

Última edición por vitro012; 29/03/2010 a las 15:37 Razón: falto un enlace complementario
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 02:46.