Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Como declarar esta variable para evitar conflictos

Estas en el tema de Como declarar esta variable para evitar conflictos en el foro de Javascript en Foros del Web. Hola amigos. Estoy tratando de asignar un valor a una variable en el cual se imprime una rutina javascript y cuando inserto el código, el ...
  #1 (permalink)  
Antiguo 24/06/2014, 05:48
 
Fecha de Ingreso: enero-2010
Mensajes: 76
Antigüedad: 14 años, 3 meses
Puntos: 1
Como declarar esta variable para evitar conflictos

Hola amigos.

Estoy tratando de asignar un valor a una variable en el cual se imprime una rutina javascript y cuando inserto el código, el contenido de la variable me crea conflictos y el script deja de funcionar.

Éste es el ejemplo:

Código Javascript:
Ver original
  1. document.getElementById("campo_texto").value = '<script languaje=\"javascript\">\n// -- Cuenta ImD' + usuario_j + servidor_j + sigla_j + '\nfunction ImD' + usuario_j + servidor_j + sigla_j + '()\n{\nvar Usuario=\"' + usuario_j + '\"\nvar Servidor=\"' + servidor_j + '.' + sigla_j + '\"\ndocument.write(\"<a href=\"\+\"mail\"\+\"to:\"\+Usuario\+\"@\"\+Servidor\+\">\")\ndocument.write(Usuario\+\"@\"\+Servidor\+\"</a>\")\n}\n</script>';

Suponiendo que las variables fuesen usuario, servidor, com y la dirección de la imagen, devería devolver el siguiente código:

Código Javascript:
Ver original
  1. <script languaje="javascript">
  2. // -- Cuenta ImDusuarioservidorcom
  3. function ImDusuarioservidorcom()
  4. {
  5. var Usuario="usuario"
  6. var Servidor="servidor.com"
  7. document.write("<a href="+"mail"+"to:"+Usuario+"@"+Servidor+">")
  8. document.write(Usuario+"@"+Servidor+"</a>")
  9. }
  10. </script>

Al parecer el código toma el último trozo del contenido de la variable donde pone </a>\")\n}\n</script>'; y crea el conflicto cerrando el script antes de tiempo.

¿Cómo tendría que definir esta variable para que no tuviese en cuenta el código de su contenido y lo interpretara com texto plano?

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 24/06/2014, 07:48
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: Como declarar esta variable para evitar conflictos

Es preferible crear el elemento mediante createElement, establecer sus propiedades y luego añadirlo al head o body mediante appendChild()... sino, obtienes un tremendo caos.
  #3 (permalink)  
Antiguo 24/06/2014, 08:38
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como declarar esta variable para evitar conflictos

Para que quieres hacerlo de esa manera ? piensas hacer un eval() ?
__________________
Salu2!
  #4 (permalink)  
Antiguo 24/06/2014, 10:13
 
Fecha de Ingreso: enero-2010
Mensajes: 76
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Como declarar esta variable para evitar conflictos

En realidad quiero hacer una herramienta gratuita online para poner en mi web y que sirva para camuflar una dirección de correos en el código fuente, de esta manera, si éste se rastrea no se podrá capturar dicha cuenta de correos.

De todas maneras no se qué es un eval, createElement o appendChild(), pero es un buen comienzo para empezar a investigar qué son y cómo funcionan, ya que en realidad es como dice PHPeros "UN VERDADERO CAOS" y termino con dolor de cabeza.

¿Debería ver estas opciones o debería seguir otro camino con lo que pretendo hacer?

Saludos y gracias por contestar.
  #5 (permalink)  
Antiguo 24/06/2014, 12:06
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como declarar esta variable para evitar conflictos

De pronto si explicas mejor lo que quieres hacer........
__________________
Salu2!
  #6 (permalink)  
Antiguo 24/06/2014, 13:30
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: Como declarar esta variable para evitar conflictos

mmmmmmm, no se entiende muy bien quieres que al colocar el correo en algun campo texto este sea encriptado, eval no es muy recomendable y si investiga por ahi.
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #7 (permalink)  
Antiguo 25/06/2014, 01:07
 
Fecha de Ingreso: enero-2010
Mensajes: 76
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Como declarar esta variable para evitar conflictos

Veamos, es muy simple y lo explico a continuación.

Tengo 3 campos input de texto, uno que se llama usuario, el segundo se llama servidor y el tercero se llama sigla.

El usuario real ingresa estos 3 datos y en el textarea con nombre "campo_texto" debería generar el código en torno a estas variables y para generarlo hago lo siguiente:

Código Javascript:
Ver original
  1. document.getElementById("campo_texto").value = '<script languaje=\"javascript\">\n// -- Cuenta ImD' + usuario_j + servidor_j + sigla_j + '\nfunction ImD' + usuario_j + servidor_j + sigla_j + '()\n{\nvar Usuario=\"' + usuario_j + '\"\nvar Servidor=\"' + servidor_j + '.' + sigla_j + '\"\ndocument.write(\"<a href=\"\+\"mail\"\+\"to:\"\+Usuario\+\"@\"\+Servidor\+\">\")\ndocument.write(Usuario\+\"@\"\+Servidor\+\"</a>\")\n}\n</script>';

Si quito la última parte donde aparece </script>, el código se genera correctamente, pero si lo dejo completo, el script toma esta parte del texto como el comando para cerrar el script y provoca el error ¿se entiende?.

El problema es que en el textarea no se genera el código completo como texto plano, sino que parte de él lo pone en ejecución y crea el conflicto ejecutando </script>, por lo demás no tengo ningún problema.

La solución que estoy buscando es que este código se genere totalmente aislado como texto plano y no lo tome como un comando del propio script.

Saludos.
  #8 (permalink)  
Antiguo 25/06/2014, 01:58
 
Fecha de Ingreso: enero-2010
Mensajes: 76
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Como declarar esta variable para evitar conflictos

OK chicos, ya está solucionado y de una manera muy simple.

He sustituído los caracteres "<" por "\<" y ">" por "\>" en todo el código y ahora se muestra correctamente sin ningún error.

Muchas gracias a todos por vuestra ayuda.

Etiquetas: declarar, funcion, valor, variable
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 23:23.