2010-04-22 18:15 @802 |
|
|
hugo11ab
Perlero Nuevo
|
Registrado: 2006-07-22 23:24 @016 Mensajes: 52
|
|
|
unterminated string constant
|
¿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. 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\">"); La función de javascript es esta: Using javascript Syntax Highlighting function openWin(theurl) {
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');
}
Espero y me puedan ayudar a resolver el por qué me manda ese error. Saludos
|
2010-04-23 14:51 @660 |
|
|
hugo11ab
Perlero Nuevo
|
Registrado: 2006-07-22 23:24 @016 Mensajes: 52
|
|
|
Re: unterminated string constant
|
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. 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\">"); ¿Alguna idea de lo que pueda estar fallando?
|
2010-04-23 20:58 @915 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10272
|
|
|
Re: unterminated string constant
|
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: 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">)); 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
|
2010-04-27 11:30 @521 |
|
|
hugo11ab
Perlero Nuevo
|
Registrado: 2006-07-22 23:24 @016 Mensajes: 52
|
|
|
Re: unterminated string constant
|
Aquí pongo el código HTML que genera la aplicación. 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>
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 |
| Tildes |
|
2010-04-27 12:04 @544 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10272
|
|
|
Re: unterminated string constant
|
|
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
|
|
Página 1 de 1
|
[ 9 mensajes ] |
|
| Reglas del Foro |
No puedes abrir nuevos temas en este Foro No puedes responder a temas en este Foro No puedes editar tus mensajes en este Foro No puedes borrar tus mensajes en este Foro No puedes enviar adjuntos en este Foro
|
|
Socializa |
 |
|