Página 1 de 1

Pregunta sobre PopUp

NotaPublicado: 2008-02-15 08:37 @401
por mydaboin
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:

Imagen

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

Sintáxis: [ Descargar ] [ Ocultar ]
Using javascript Syntax Highlighting
<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&#058;popUp('http://www.800vehiculos.com/cgi-bin/catalogoviewv.pl?listado=800vehiculos1&codigo=000111&activar=&nombreu=prueba2007')">Abrir Ventana Pop Up</A>
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Ahora bien, se puede adaptar este código a Perl:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
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";
                                        }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4

NotaPublicado: 2008-02-15 10:36 @483
por explorer
Yo creo que hay un error en la definición de la función popUp().

NotaPublicado: 2008-02-15 11:35 @524
por explorer
En efecto... el fallo está en la colocación de los indicadores de comentarios '<!--' y '-->'.

Quítalos.

NotaPublicado: 2008-02-15 12:29 @562
por mydaboin
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 :roll: , espero resolver este dilema :(

NotaPublicado: 2008-02-15 13:07 @588
por hugo11ab
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:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
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


}
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

ASI MANDO A LLAMAR LA FUNCIÓN DESDE EL FORMULARIO:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$table1->setCell($r,6, "<a href=\"#\" onclick=\"openWin('$url?$parametros')\"><font size=1 color=red> <b>VER DETALLE<b></font></a>");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

NotaPublicado: 2008-02-16 19:29 @854
por Jenda
Permítame que te doy unos recomendaciones para mejorar tus scripts. De primero esto

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print "<html><title>Catalogo de \U$empresa</title>\n";
print "<style TYPE=\"text/css\">\n";
print "<!--\n";
...
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


está mejor escrito como

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print qq{<html><title>Catalogo de \U$empresa</title>
<style TYPE="text/css">
<!--
...
};
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


o

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print <<"*END*";
<html><title>Catalogo de \U$empresa</title>
<style TYPE="text/css">
<!--
...
*END*
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


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

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$codigo=$inf[0];
$descrip=$inf[1];
$dtecnicos=$inf[4];
...
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


sino que puedes usar solo

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
($codigo, $descrip, $dtecnicos, ...) = @inf;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


o postergar el @inf completamente y usar

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
($codigo, $descrip, $dtecnicos, ...) = split("\t",$reng);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


o si de verdad necesitas usar solo unos elementos de @inf puedes hacer eso

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
($codigo, $descrip, $dtecnicos, ...) = @inf[0,1,4,5,6,7,8,9,10,12,13,15,16];
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


o

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
($codigo, $descrip, $dtecnicos, ...) = @inf[0,1,4..13,15,16];
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Pero la recomendación más importante es que empiezas todos tus scripts con esas dos líneas:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use strict;
use warnings;
# y posiblemente
# no warnings 'uninitialized';
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


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.

NotaPublicado: 2008-02-20 10:00 @458
por mydaboin
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). ;)

NotaPublicado: 2008-02-20 10:30 @479
por mydaboin
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