Foros del Web » Programando para Internet » Javascript »

unterminated string literal

Estas en el tema de unterminated string literal en el foro de Javascript en Foros del Web. Buenos dias. Pido ayuda a los sabios del javascript con un problema que tengo, se trata de que me da un error de que las ...
  #1 (permalink)  
Antiguo 01/10/2012, 04:39
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 17 años, 2 meses
Puntos: 14
Exclamación unterminated string literal

Buenos dias.

Pido ayuda a los sabios del javascript con un problema que tengo, se trata de que me da un error de que las comillas no estan cerradas cuando si lo estan.

El codigo que produce el error es
Código Javascript:
Ver original
  1. escritorio.agregar("<script>var ventana"+app+" = new ventana('"+app+"','"+data+"');</script>","body");

Mas concretamente en la variable data. Cuando un alert sobre ella no me muestra ningun tipo de comillas ni nada por el estilo, y cuando en el codigo anterior quito las primeras comillas simples me lo coje como si fuera una funcion.

El navegador devuelve el siguiente error:

SyntaxError: unterminated string literal
[Parar en este error]

var ventanavfs = new ventana('vfs','Sistema de archivos

jquery.js (línea 514, col 35)

la variable app es igual a vfs y la variable data es igual a Sistema de archivos los valores les interpreta bien pero a la hora de ejecutar se come las comillas.

Alguna solucion.

PD: he probado escapando las comillas y me sigue saliendo el mismo error.
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios
  #2 (permalink)  
Antiguo 01/10/2012, 05:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: unterminated string literal

Si haces

Código Javascript:
Ver original
  1. alert("<script>var ventana"+app+" = new ventana('"+app+"','"+data+"');</script>");

sale bien?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 01/10/2012, 07:30
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 17 años, 2 meses
Puntos: 14
Respuesta: unterminated string literal

SI haciendo un alert, sale correcto tal cual deberia ser interpretado por el navegador.
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios
  #4 (permalink)  
Antiguo 01/10/2012, 07:56
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: unterminated string literal

buenas,
curioso que te funcione con alert pero no con tu función. de hecho, no te debería funcionar en ninguna circunstancia. la razón es porque el navegador hace un cierre prematuro del entorno de scripting. no porque el navegador sea ineficiente, sino por como analiza los tags. específicamente el navegador considera la siguiente porción como scripting.

Código:
<script>
escritorio.agregar("<script>var ventana"+app+" = new ventana('"+app+"','"+data+"');</script>","body");
</script>
es decir, va desde el primer <script> hasta la primera coincidencia de </script>. ¿qué debes hacer? cualquier cosa en que sintácticamente el navegador no pueda analizarlo como un tag. por ejemplo, dividir la secuencia script en otro string... "</scri" + "pt>". o bien substituir algún caracter en su equivalente hexadecimal... "</\x73cript>". el más fácil, escapa el caracter slash... "<\/script>". reitero, no tienes que usar todas esas alternativas, solo una de ella.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: funcion, js, literal, string
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 18:44.