Vie Feb 15, 2008 7:37 am
|
 |
mydaboin
Perlero Nuevo

|
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
|
|
| Pregunta sobre PopUp |
|
|
He estado investigando tanto en esta página como en otras sobre la utilización de ventanas emergentes, debido a que un cliente desea que los usuarios al dar clik sobre un vehículo en particular, salgan sus características en una nueva ventana, claro está con un tamaño especifico. Seguí varios de los ejemplos planteados en dichas páginas incluyendo esta, pero sin resultados positivos, desearía saber cómo se debe poner correctamente el JavaScript en Perl para que funcione correctamente, ya que me da un error de búsqueda:
Lo que me quiere decir que no está tomando en cuenta las especificaciones dadas a la función del JavaScript.
Ahora bien, de los que he usado, este lo crea un generador automático y en pruebas con HTML y funcionó
http://www.contadorwap.com/popups.php
| Javascript: | <HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=800,height=600');");
}
// End -->
</script>
<!-- SEGUNDO PASO: Utilice el siguiente link para abrir la nueva ventana -->
<A HREF="javascript:popUp('http://www.800vehiculos.com/cgi-bin/catalogoviewv.pl?listado=800vehiculos1&codigo=000111&activar=&nombreu=prueba2007')">Abrir Ventana Pop Up</A>
|
Ahora bien, se puede adaptar este código a Perl:
| Perl: | print "<html><title>Catalogo de \U$empresa</title>\n";
print "<style TYPE=\"text/css\">\n";
print "<!--\n";
print "a \{ text-decoration: none; color:$colorlink; \}\n";
print "a:hover\{ text-decoration: underline; color:$colorlink; \}\n";
print "b \{ font-size:11px; color:$colortitulo; font-family: Arial;\}\n";
print "strong \{ font-size:11px; color:$colortitulo; font-family: Arial;\}\n";
print "body \{ font-size:11px; color:$colortexto; font-family: Arial\; }\n";
print "td \{ font-size:11px; color:$colortexto; font-family: Arial\; }\n";
print "// -->\n";
print "</style>\n";
print "<base target=derecho>\n";
print "<body topmargin=10 bgcolor=\"$colorfondo\" background=\"../imagenes/$listado-background.jpg\"><center>\n";
&Usuario;
$contador= 0;
$hallado= "";
if ($servidorftp ne ""){
$origen= "categorias.dat";
$destino= "../db/$listado/temporal/$usuario-categorias.dat";
#use Net::FTP;
$ftp = Net:: FTP-> new($servidorftp, Debug => 0);
$ftp-> login($loginserver, $passwserver);
$ftp-> cwd("/db/$listado");
$ftp-> get($origen, $destino);
$archivo_categorias= $destino;
}else{
$archivo_categorias= "../db/$listado/categorias.dat";
}
if ($servidorftp ne ""){
$origen= "productos.dat";
$destino= "../db/$listado/temporal/$usuario-productos.dat";
$ftp-> get($origen, $destino);
$archivo_productos= $destino;
}else{
$archivo_productos= "../db/$listado/productos.dat";
}
if (-e $archivo_productos){
open (PRODUCTOS, "$archivo_productos") || &Error ($!, "$archivo_productos");
while($reng= <PRODUCTOS>){
chop $reng;
@inf= split("\t", $reng);
$codigo= $inf[0];
$descrip= $inf[1];
$dtecnicos= $inf[4];
$inactivo= $inf[5];
$oferta= $inf[6];
$exento= $inf[7];
$vercolores= $inf[8];
$vertallas= $inf[9];
$gru= $inf[10];
$sub= $inf[11];
$sec= $inf[12];
$ciu= $inf[13];
$tlf1= $inf[15];
$nomu= $inf[16];
if ($activar ne ""){
$precio= $inf[3];
}else{
$precio= $inf[2];
}
$criterio= "$codigo$descrip$dtecnicos$gru$sub$sec$ciu$precio";
$imprimir= "no";
#if ($criterio=~/$grupo/i && $criterio=~/$subgrupo/i && $criterio=~/$seccion/i){
#$imprimir="si";
#}
if ($grupo eq $gru && $subgrupo eq $sub && $seccion eq $sec){
$imprimir= "si";
}
if ($criterio=~/ $marca1/i && $criterio=~/ $modelo1/i && $criterio=~/ $ciudad1/i && $seccion eq ""){
$imprimir= "si";
}
$imagen1= "../$listado/imagenes/t\_$codigo-1.jpg";
$imagen2= "../$listado/imagenes/t\_$codigo-1.jpg";
$imagen3= "../$listado/imagenes/t\_$codigo-2.jpg";
$imagen4= "../$listado/imagenes/t\_$codigo-2.jpg";
if ($inactivo ne ""){
$imprimir= "no";
}
if ($imprimir eq "si"){
$hallado= "si";
print "<table border=1 cellpadding=0 cellspacing=0 width=95%>\n";
print "<tr><td align=center bgcolor=efefef>\n";
print "<table border=0 cellpadding=2 cellspacing=0 width=100%>\n";
print "<tr><td align=center bgcolor=\"$colorfondo\">\n";
print "<a target=derecho href=\"/cgi-bin/catalogoviewv.pl?listado=$listado\&usuario=$usuario\&codigo=$codigo\&activar=$activar\&nombreu=$nomu\">\n";
print "Ver Detalles ";
$img= "../htdocs/$listado/detalle.gif";
if (-e $img){
$img= "../$listado/detalle.gif";
}else{
$img= "../img/detalle.gif";
}
print "<img src=$img align=absmiddle border=0>";
print "</a>\n";
print "<tr><td align=center bgcolor=white height=1>\n";
print "<tr><td align=center bgcolor=c0c0c0 height=1>\n";
print "<tr><td align=center bgcolor=555555 height=1>\n";
if ($oferta ne ""){
print "<tr><td align=center bgcolor=\"red\">\n";
print "<b><font color=\"yellow\">OFERTA</font></b>\n";
}
if (-e $imagen1){
print "</td></tr><tr><td align=center bgcolor=\"white\">\n";
print "<a target=derecho href=\"/cgi-bin/catalogoviewv.pl?listado=$listado\&usuario=$usuario\&codigo=$codigo\&descrip=$descrip\&precio=$precio\&activar=$activar\&nombreu=$nomu\">\n";
print "<img src=\"$imagen2\" border=0></a>\n";
}
if (-e $imagen3){
print "</td></tr><tr><td align=center bgcolor=\"white\">\n";
print "<a target=derecho href=\"/cgi-bin/catalogoviewv.pl?listado=$listado\&usuario=$usuario\&codigo=$codigo\&descrip=$descrip\&precio=$precio\&activar=$activar\&nombreu=$nomu\">\n";
print "<img src=\"$imagen4\" border=0 width=100></a>\n";
} |
|
|
|
|

Vie Feb 15, 2008 9:36 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4143
Ubicación: Valladolid, España
|
|
|
|
|
| Yo creo que hay un error en la definición de la función popUp(). |
|
Vie Feb 15, 2008 10:35 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4143
Ubicación: Valladolid, España
|
|
|
|
|
En efecto... el fallo está en la colocación de los indicadores de comentarios '<!--' y '-->'.
Quítalos. |
|
Vie Feb 15, 2008 11:29 am
|
 |
mydaboin
Perlero Nuevo

|
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
|
|
|
|
|
Si ya lo hice y nada , creo que mi error está en la colocación de la función. La pongo justo arriba del body , espero resolver este dilema  |
|

Vie Feb 15, 2008 12:07 pm
|
 |
hugo11ab
Perlero Nuevo

|
Registrado: 22 Jul 2006
Mensajes: 31
|
|
|
|
|
Aquí pongo el código que uso para abrir nuevas ventanas y la manera de cómo lo mando a llamar desde el formulario. Espero y te sirva:
| Perl: | sub js2 {
$JSCRIPT=<<EOT;
<script language= "JavaScript" type= "text/javascript">
<!-- Hide script
//<! [CDATA [
function openWin (theurl ) {
window. open(theurl , '', 'toolbar=0,location=0,directories=0,status=0 menubar= 0,scrollbars=1,resizable=0,copyhistory=0,width=600,height=400, top=50,left=25');
}
// ]]> End script hiding -->
</script>
EOT
}
|
ASI MANDO A LLAMAR LA FUNCIÓN DESDE EL FORMULARIO:
| Perl: | $table1->setCell($r,6, "<a href=\"#\" onclick=\"openWin('$url?$parametros')\"><font size=1 color=red> <b>VER DETALLE<b></font></a>"); |
|
|

Sab Feb 16, 2008 6:29 pm
|
 |
Jenda
Perlero Frecuente

|
Registrado: 29 Oct 2007
Mensajes: 106
Ubicación: Praga, Republica Checa
|
|
|
|
|
Permítame que te doy unos recomendaciones para mejorar tus scripts. De primero esto
| Perl: | print "<html><title>Catalogo de \U$empresa</title>\n";
print "<style TYPE=\"text/css\">\n";
print "<!--\n";
... |
está mejor escrito como
| Perl: | print qq{<html><title>Catalogo de \U $empresa</title>
<style TYPE= "text/css">
<!--
...
}; |
o
| Perl: | print << "*END*";
<html><title>Catalogo de \U $empresa</title>
<style TYPE= "text/css">
<!--
...
*END* |
No hay razón para perder tiempo escapando todas las '"', añadiendo los \n y print y todo esto.
Segundo, se puede ajustar más variables en el mismo tiempo en Perl así que no tienes que escribir
| Perl: | $codigo=$inf[0];
$descrip=$inf[1];
$dtecnicos=$inf[4];
... |
sino que puedes usar solo
| Perl: | ($codigo, $descrip, $dtecnicos, ...) = @inf; |
o postergar el @inf completamente y usar
| Perl: | ($codigo, $descrip, $dtecnicos, ... ) = split("\t", $reng); |
o si de verdad necesitas usar solo unos elementos de @inf puedes hacer eso
| Perl: | ($codigo, $descrip, $dtecnicos, ...) = @inf[0,1,4,5,6,7,8,9,10,12,13,15,16]; |
o
| Perl: | ($codigo, $descrip, $dtecnicos, ...) = @inf[0,1,4..13,15,16]; |
Pero la recomendación más importante es que empiezas todos tus scripts con esas dos líneas:
| Perl: | use strict;
use warnings;
# y posiblemente
# no warnings 'uninitialized';
|
De primero te va a dar la lata mucho porque vas a tener que declarar todas las variables, pero después va a ayudar mucho con prevenir todos los tipos de faltas como letras superpuestas en nombres de variables y otras. |
|

Mie Feb 20, 2008 9:00 am
|
 |
mydaboin
Perlero Nuevo

|
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
|
|
|
|
|
Gracias por los tips tanto a Explorer, Hugo (por fin funcionó, aunque se tarda un poquito, pero ya funciona ) y Jenda (trabajo en base a otro programador que dejó la caratula construida y yo agrego nuevas cosas, pero los tips que me das me servirán para armar los otros programas propios que estoy haciendo. Gracias).  |
|
Mie Feb 20, 2008 9:30 am
|
 |
mydaboin
Perlero Nuevo

|
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
|
|
|
|
|
Hugo, ya me dí cuenta que era mi máquina la que esta lenta, jaja, se me olvidaba que estaba subiendo archivos pesados, jeje, en las otras máquinas se ve bien y no se tarda Muchas gracias |
|
Powered by phpBB © 2001, 2005 phpBB Group
|