• Publicidad

unterminated string constant

Discute todo acerca de JavaScript así como DHTML o la tecnología AJAX.

unterminated string constant

Notapor hugo11ab » 2010-04-22 18:15 @802

¿Qué tal? estoy haciendo un programa en Perl y utilizo una función de JavaScript para abrir una ventana emergente. El problema que tengo es que al momento de cargar la página me genera un error de JavaScript que dice "unterminated string constant", por lo cual no puedo abrir la ventana.

De esta manera es cuando me marca el error; ya le busqué y al parecer es cuando paso el valor de solicitud codificado.

Sintáxis: [ Descargar ] [ Ocultar ]
Using javascript Syntax Highlighting
 $solicitud="10L.43/10"
 my $solicitud =  encode_base64($solicitud);
 $table1->setCell(1,1,"<a href=\"#\" onclick=\"openWin('generaPdf.cgi?&nc=45&solicitud=$solicitud','$solicitud')\"> <img src='../../images/comun/pdf2.gif' alt=\"Generar Oficio de Radicacion\">");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


La función de javascript es esta:
Sintáxis: [ Descargar ] [ Ocultar ]
Using javascript Syntax Highlighting
  1. function openWin(theurl) {
  2.     window.open(theurl ,'','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,copyhistory=0,width=500,height=170, top=50,left=25');
  3.  }
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Espero y me puedan ayudar a resolver el por qué me manda ese error.
Saludos
hugo11ab
Perlero nuevo
Perlero nuevo
 
Mensajes: 77
Registrado: 2006-07-22 23:24 @016

Publicidad

Re: unterminated string constant

Notapor explorer » 2010-04-22 19:54 @871

La consola de JavaScript de Firefox debería indicarte la fila y columna donde se produce el error.

Me faltan algunos datos. En el código de Perl, falta un ';' en la primera línea, y en la segunda, estás declarando de nuevo a la variable $solicitud (con my()). Y a continuación de generaPdf.cgi, el primer parámetro está unido a '?' con un separador '&', que ahora mismo no recuerdo si es legal hacerlo de esta manera.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: unterminated string constant

Notapor hugo11ab » 2010-04-23 14:51 @660

Gracias por tu oportuna respuesta.

En efecto, sí tengo unos errores de sintaxis que ya corregí. Utilizo el navegador Internet Explorer. El navegador me manda el error en la línea de código que manda a llamar la función openWin(). Lo raro es que si no codifico la variable solicitud funciona perfectamente. Yo lo que estoy tratando de hacer es pasar el valor solicitud codificado, pero es ahí donde falla el script.

Sintáxis: [ Descargar ] [ Ocultar ]
Using javascript Syntax Highlighting
$solicitud="10L.43/10";

// Si comento la línea de abajo el script funciona bien.
#$solicitud = encode_base64($solicitud);

$table1->setCell(1,1,"<a href=\"#\" onclick=\"openWin('generaPdf.cgi?&nc=45&solicitud=$solicitud')\"> <img src='../../images/comun/pdf2.gif' alt=\"Generar Oficio de Radicacion\">");
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


¿Alguna idea de lo que pueda estar fallando?
hugo11ab
Perlero nuevo
Perlero nuevo
 
Mensajes: 77
Registrado: 2006-07-22 23:24 @016

Re: unterminated string constant

Notapor explorer » 2010-04-23 16:38 @735

Sería interesante ver el código generado por el programa. Es decir, cuando cargue la página, mira el código fuente de la página, y manda aquí el código de la llamada a openWin(), para que veamos el código JavaScript real que el navegador está viendo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: unterminated string constant

Notapor creating021 » 2010-04-23 20:50 @910

"<a href=\"#\" onclick=\"openWin('generaPdf.cgi?&nc=45&solicitud=$solicitud')\">"

Lo que pasa, si mal no estoy, es que $solicitud está dentro de comillas simples, así que perl lo toma como literal (es decir, no reemplaza el valor).

Intenta "escaparlas" con \;
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Re: unterminated string constant

Notapor explorer » 2010-04-23 20:58 @915

Pues no, creating021, sí que está bien escrito.

En Perl, se pueden tener comillas simples dentro de dobles. Y en ese caso siempre se produce la interpolación de las variables.

Es justo al contrario: si toda la cadena está con comillas simples, entonces no hay interpolación.

Cuando hay mucho lío de comillas, es siempre mejor acordarse de que hay otra forma de entrecomillar las cadenas de caracteres:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$table1->setCell(1, 1, qq(<a href="#" onclick="openWin('generaPdf.cgi?&nc=45&solicitud=$solicitud')"> <img src="../../images/comun/pdf2.gif" alt="Generar Oficio de Radicacion">));
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

qq() tiene las mismas funciones que las comillas dobles. Y como se ve, ya no hace falta escapar ninguna comilla (ni simple ni doble).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: unterminated string constant

Notapor hugo11ab » 2010-04-27 11:30 @521

Aquí pongo el código HTML que genera la aplicación.
Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
<table border="1" cellspacing="0" cellpadding="3" width="100%" style="border-collapse:collapse;border-color:#666666">
  <tr bgcolor="#003366">
    <td height="25"><font class="sBL3b"><b>OFICIO</b> </font></td>
    <td height="25"><font class="sBL3b"><b>SOLICITUD</b> </font></td>
    <td align="center" height="25" colspan="4"><font class="sBL3b"><b>OPCIONES</b> </font>
    </td>
    <!-- spanned cell --><!-- spanned cell --><!-- spanned cell --></tr>

  <tr>
    <td height="15"><font class=rojo> SIN OFICIO </font></td>
    <td height="15">16L.01/10</td><td align="left" height="15"><img src="../../images/firco/amarillo.gif" </img>
    </td>

    <td height="15"> <a href='/cgi-bin/presupuesto2/generar_solicitudes.cgi?nc=3910_w3Ieu5iF&opc=Cancelar&solicitud=MTZMLjAxLzEw&delafecha=delafecha&alafecha=MjYvMDQvMjAxMA==&mes_apcl=MQ==&ejercicio_apcl=MjAxMA==' onClick="return cancela();"> <img src="../../presupuesto2/images/cancelar.gif"</img></a>
    </td>

    <td height="15"> <a href='/cgi-bin/presupuesto2/generar_solicitudes.cgi?nc=3910_w3Ieu5iF&opc=Siguiente&solicitud=MTZMLjAxLzEw&edita=1&delafecha=MDYvMDQvMjAxMA==&alafecha=MjYvMDQvMjAxMA==&mes_apcl=MQ==&ejercicio_apcl=MjAxMA==&no_oficio='> <img src="../../../images/comun/editar.gif"</img></a>
    </td>
    <td height="15"><a href="#" onclick="openWin('generaSolicitudPdf.cgi?nc=3910_w3I!eu5iF&solicitud=MTZMLjAxLzEw')"> <img src='../../images/comun/pdf2.gif' alt="Generar Oficio de Radicacion">
    </td>
  </tr>
</table>
 
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Los parámetros delafecha, alafecha, mes_apcl, ejercicio_apcl y solicitud están codificados con encode_base64(). El error me lo marca al momento de llamar la función openwin(). Lo raro es que únicamente el error lo manda cuando codifico el parámetro solicitud.

Espero que me puedan asesorar en qué estoy fallando.
Última edición por explorer el 2010-04-27 11:40 @528, editado 2 veces en total
Razón: Tildes
hugo11ab
Perlero nuevo
Perlero nuevo
 
Mensajes: 77
Registrado: 2006-07-22 23:24 @016

Re: unterminated string constant

Notapor explorer » 2010-04-27 12:04 @544

Yo no veo nada raro...

Si el error que sale es de JavaScript, entonces quizás el problema está en la parte de JavaScript.

Mira en las líneas donde está definida la función openwin(), hacia atrás, revisando si todas las llaves, paréntesis, comillas simples y dobles, y puntos y comas, están en su sitio.

Una estrategia de depurado, cuando nos enfrentamos a un error que no somos capaces de ver, es la de ir quitando y poniendo código, hasta que realmente sepamos qué rango de líneas son las que lo provocan.

En tu caso, yo lo que haría sería generar la página, pero ningún código HTML excepto en el que sospecho que es donde está el error. Si sigue fallando, hago lo mismo con la parte de JavaScript. Así hasta tener una página en la que no haya errores. Luego, hago el proceso inverso: voy colocando elementos HTML y JavaScript, hasta que salga el error.

La forma más efectiva de hacer esto sería, idealmente, con una búsqueda binaria:
* Bucle:
* La cantidad de líneas a quitar o poner se reduce a la mitad
* Si sale el fallo quito líneas
* Si no hay fallo, repongo líneas
* Repetir

Al final, deberían quedar localizadas las líneas que provocan el fallo. O saber qué línea a mayores es la que provoca el fallo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: unterminated string constant

Notapor marcmb » 2010-05-12 15:14 @677

explorer a veces los fallos son tan simples que no nos damos cuenta; ya sé que está el tema pasado, pero por si alguna vez quisiste saber porque fallaba, el error no estaba en el JavaScript; era que faltaba una etiqueta </a> (cuántas veces me habrán pasado tonterías así...)
Avatar de Usuario
marcmb
Perlero nuevo
Perlero nuevo
 
Mensajes: 55
Registrado: 2010-05-03 07:42 @362
Ubicación: Girona


Volver a JavaScript

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados