Foros del Web » Programando para Internet » Javascript »

Copiar dirección de la página al portapapeles

Estas en el tema de Copiar dirección de la página al portapapeles en el foro de Javascript en Foros del Web. No se si podrá hacer. he visto por ahí scripts que permiten seleccionar un determinado texto y a la vez copiarlo al portapapeles. Me gustaría ...
  #1 (permalink)  
Antiguo 17/03/2004, 05:51
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 0
Copiar dirección de la página al portapapeles

No se si podrá hacer. he visto por ahí scripts que permiten seleccionar un determinado texto y a la vez copiarlo al portapapeles. Me gustaría conseguir un scripts mediante el cual, el texto a seleccionar y copiar sería la dirección de esa determinada página. Es decir, copiar la dirección al portapapeles mediante un enlace. No se si me he explicado bien... :)

¡Gracias!

Última edición por coke_135; 17/03/2004 a las 05:53
  #2 (permalink)  
Antiguo 18/03/2004, 03:49
 
Fecha de Ingreso: octubre-2003
Mensajes: 40
Antigüedad: 20 años, 6 meses
Puntos: 0
Esta es una forma un poco chapuza, imagino que las hay más elegantes.

<html>
<head>
<title>URL Portapapeles</title>
<script language="JavaScript">
function URLportapapeles(){
document.getElementById("hidURL").value=document.U RL
var _varURL=document.getElementById("hidURL")
document.getElementById("LyURLHid").style.visibili ty="visible"
_varURL.focus();
_varURL.select();
document.getElementById("LyURLHid").style.visibili ty="hidden"
if (document.all) {
rango = _varURL.createTextRange();
rango.execCommand("Copy");
alert ("Copiado en el portapapeles la URL:\n"+document.getElementById("hidURL").value)
}
}
</script>

<body bgcolor="#FFFFFF" text="#000000">
<div id="LyURLHid" style="visibility: hidden">
<form name="formCoor">
<input type="text" name="hidURL" id="hidURL" value="">
</form>
</div>
<p><a href="javascript:URLportapapeles()">Copiar URL</a> </p>
</body>
</html>

Suerte

rsalvadores
  #3 (permalink)  
Antiguo 18/03/2004, 06:31
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 0
Muchísimas gracias. El caso es que funcione ;)

Salu2
  #4 (permalink)  
Antiguo 23/03/2004, 10:41
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 0
Cuando lo probé la primera vez funcionó muy bien, y ahora también :), pero tengo un pequeño problema.

El código que me pasaste genera un cuadro de texto (invisible) que hace que todo se me desplace hacia abajo una linea. Algo así:


Original:

Link - Link - Link - Link


Con el Javascript:

(Cuadro invisible)

Link - Link - Link - Link


¿Habría alguna forma de solucionarlo?

Gracias de nuevo. Salu2
  #5 (permalink)  
Antiguo 23/03/2004, 10:51
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, coke_135.

Cambia: style="visibility:hidden"

por: style="display:none"

Saludos,
  #6 (permalink)  
Antiguo 23/03/2004, 11:36
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 0
Hola Javier:

Gracias por ayudarme, pero parece que no funciona. Si te refieres a este hidden:

Código PHP:
 <div id="LyURLHid" style="visibility: hidden"
cambiándolo me da error.

Si te refieres a este otro:

Código PHP:
 document.getElementById("LyURLHid").style.visibility="hidden" 
me sale como yo quiero, pero solo al hacer click en el enlace, antes de hacerlo sale igual que antes, desplazado hacia abajo.

A ver si lo arreglamos. ¡Gracias!
  #7 (permalink)  
Antiguo 23/03/2004, 12:26
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Veamos si ahora marcha:

<div id="LyURLHid" style="visibility: hidden; height:0px">

Saludos,
  #8 (permalink)  
Antiguo 23/03/2004, 14:59
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 0
Gracias otra vez Javier. Siento ser pesado, pero sigue sin funcionar. Ocurre lo mismo que antes, al hacer click desaparece el recuadro, pero antes de hacerlo se queda arriba el espacio en blanco del cuadro.

Un saludo
  #9 (permalink)  
Antiguo 24/03/2004, 03:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 40
Antigüedad: 20 años, 6 meses
Puntos: 0
No se si entiendo muy bien el problema.
El espacio que te queda arriba es por el div, si lo quieres quitar tienes dos opciones, cambia el orden del href y el div:

...
<body bgcolor="#FFFFFF" text="#000000">
<p><a href="javascript:URLportapapeles()">Copiar URL</a> </p>
<div id="LyURLHid" style="visibility: hidden">
<form name="formCoor">
<input type="text" name="hidURL" id="hidURL" value="">
</form>
</div>

</body>

o colocar el div en una posicion absoluta:

...
<body bgcolor="#FFFFFF" text="#000000">
<div id="LyURLHid" style="position:absolute; left:0px; top:0px; width:0px; height:0px; z-index:1;visibility: hidden">
<form name="formCoor">
<input type="text" name="hidURL" id="hidURL" value="">
</form>
</div>
<p><a href="javascript:URLportapapeles()">Copiar URL</a> </p>
</body>


De todas formas, como dice JavierB, creo que es más adecuado poner:

style="display:none"

en vez de:

style="visibility:hidden"


No se muy bien porque, lo lei en otro asunto, pero ya no me acuerdo.

Espero que se haya solucionado tu problema.

Saludos

rsalvadores
  #10 (permalink)  
Antiguo 24/03/2004, 03:53
 
Fecha de Ingreso: octubre-2003
Mensajes: 40
Antigüedad: 20 años, 6 meses
Puntos: 0
Ya se porque es mejor usar "display" en vez de "visibility".

La solución de JavierB era buena, pero creo que no la has entendido correctamente, hay que cambiar la propiedad

"visisbility" por "display",

y sustituir "visible" por "block" y "hidden" por "none"

pero en toda la página.

<html>
...
document.getElementById("LyURLHid").style.display= "block";
...
...
document.getElementById("LyURLHid").style.display= "none";
...
...
<div id="LyURLHid" style="display:none">
...
...
</html>

Suerte.

rsalvadores
  #11 (permalink)  
Antiguo 24/03/2004, 11:47
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 0
¡Ahora si! Parece que funciona ;). Muchísimas gracias.

Ahora una duda, una curiosidad mas que nada :) para saber el funcionamiento del script. ¿Es estrictamente necesario añadir el cuadro de texto (aunque sea invisible)?. Si no me equivoco (que es muy probable xD), la url del documento es la variable .document.URL. ¿No se podría copiar al portapapeles directamente?

Gracias por todo. Un saludo
  #12 (permalink)  
Antiguo 25/03/2004, 04:46
 
Fecha de Ingreso: octubre-2003
Mensajes: 40
Antigüedad: 20 años, 6 meses
Puntos: 0
Yo creo que no, ya que primero necesita seleccionar el texto.

Tambien hay otra forma utilizando el id del elemento, pero creo que te pasaría lo mismo.

De todas formas, yo no soy muy entendido en esto, probablemente los moderadores puedan ayudarte más.

Haz una busqueda por "portapapeles" creo que encontrarás más cosas.

Suerte.

rsalvadores
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 20:26.