Foros del Web » Programando para Internet » Javascript »

¿Evitar copiado de texto con javascript?

Estas en el tema de ¿Evitar copiado de texto con javascript? en el foro de Javascript en Foros del Web. Hola amigos, ya sé lo primero que me dirán: Revisar las FAQ's/Wiki del foro. Les comento que en las FAQ's encontré 82.- Deshabilitar selección de ...
  #1 (permalink)  
Antiguo 03/05/2013, 23:06
Avatar de charolastrazoe  
Fecha de Ingreso: febrero-2008
Ubicación: En el @itscomalcalco
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 5
Pregunta ¿Evitar copiado de texto con javascript?

Hola amigos, ya sé lo primero que me dirán: Revisar las FAQ's/Wiki del foro. Les comento que en las FAQ's encontré 82.- Deshabilitar selección de texto y en realidad me sirve de mucho!

Pero con este y otros códigos del tipo:
Código HTML:
Ver original
  1. <body oncontextmenu="return false" onkeydown="return false">

o del tipo

Código Javascript:
Ver original
  1. document.oncontextmenu = function(){return false}

Que ciertamente evitan el copiado en cierto modo (ya sea el contextual o seleccionando con el mouse) pero tengo un pequeño problema: Específicamente en Mozilla Firefox cuando tengo un formulario, no me permite escribir sobre él.

¿Alguna idea de cómo solucionar eso?
  #2 (permalink)  
Antiguo 03/05/2013, 23:43
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: ¿Evitar copiado de texto con javascript?

Esto es de lo más compatible que vas a conseguir
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>
<title>titulo</title> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
/*<![CDATA[*/
*{
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-o-user-select: none;
-ms-user-select: none;
user-select: none;
}
/*]]>*/

</style>
</head>
<body onselectstart="return false;" oncontextmenu="return false;">
<p>Texto</p>
<input type="text" value="vvvv" />
</body>
</html>
Pero como ya habrás visto, son solo pequeñas trabas al usuario, no hay nada 100% efectivo. Con deshabilitar el js o css basta

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 04/05/2013, 00:12
Avatar de charolastrazoe  
Fecha de Ingreso: febrero-2008
Ubicación: En el @itscomalcalco
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 5
De acuerdo Respuesta: ¿Evitar copiado de texto con javascript?

@emprear uff eres un genio!! Lo acabo de aplicar en mi sitio y lo probé con firefox y al parecer funciona a las mil maravillas!!

Muchas, muchas gracias!!
  #4 (permalink)  
Antiguo 04/05/2013, 00:50
Avatar de charolastrazoe  
Fecha de Ingreso: febrero-2008
Ubicación: En el @itscomalcalco
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: ¿Evitar copiado de texto con javascript?

@emprear, te vuelvo a molestar... fíjate que como te comenté, en firefox me funciona ya a las mil maravillas, que es el que me estaba dando lata.

Pero ahora abrí el formulario en Google Chrome y es Chrome el que presenta el mismo problema que tenía firefox, no me permite escribir sobre el formulario :S faltará algo más al código que colocaste?

He hecho la prueba en IExplorer9 y ahí no tengo problema tampoco, el detalle ahora es Chrome
  #5 (permalink)  
Antiguo 04/05/2013, 13:21
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: ¿Evitar copiado de texto con javascript?

Si, ya veo, como te dije lograr compatibilidad no es sencillo, este me quedó un poco mejor. al menos para IE, FF y Chrome
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>
<title>Deshabilitar selección</title> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
/*<![CDATA[*/
*{
-moz-user-select: none;
-o-user-select: none;
-ms-user-select: none;
user-select: none;
}
/*]]>*/

</style>
</head>
<body onselectstart="return false;" oncontextmenu="return false;">
<p>Texto</p>
<input type="text" value="vvvv" onselect="this.blur();" />
</body>
</html> 
Pero por supuesto, siguen las limitaciones que te indiqué. Además, por ejemplo, en Firefox

Menú
Edición -- > Seleccionar todo, selecciona el texto del body, y luego con Crtl+c copian

Realmente yo no me preocuparía tanto por evitar la selección

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: copia, firefox
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 08:53.