• Publicidad

Consulta sobre Nmap::Scanner

Aquí encontrarás todo lo que sea específicamente acerca de módulos de Perl. Ya sea que estás compartiendo tu módulo, un manual o simplemente tienes una duda acerca de alguno.

Notapor explorer » 2008-02-15 19:08 @839

Pero si mi JavaScript está escrito en el código... es una función (cambia()) que hace eso: oculta o muestra la fila según se pulse en el título (la fila anterior).

Lo que hay que hacer es: 1.) Meter el código de la función JavaScript en la parte del <head>, y 2.) Colocar la llamada a la función en los enlaces o elementos que queremos que la activen.

En el ejemplo que yo hice, el truco era el siguiente: creamos una tabla en la que vamos metiendo filas que sean los títulos del contenido que está en las filas de la tabla siguiente (inicialmente ocultas).

En cuanto a tu código, veo que sigues creando el código HTML al mismo tiempo que sucede el escaneo. Habría que poner el código que llama a la función JavaScript en la de scan_started(), haciendo que el 'id' a ocultar o mostrar sea el que vas a usar dentro de las celdas que se crean dentro de port_found(). Pero en tu código es más complicado que el mío: yo meto todos los puertos encontrados en solo UNA celda y a esa celda le doy el 'id' del titular, para que el código JavaScript sepa qué es lo que tiene que mostrar u ocultar.

El querer ocultar "Host description" es el mismo problema: es una celda nueva en una fila nueva.

Una posible solución (para tu caso de que un click() en un elemento oculte/muestre varios elementos) consistiría en que esos elementos tuviesen una serie de 'id' consecutivos, y dentro del código JavaScript, pasarle el primer 'id' y que hiciese un bucle por todos ellos, cambiando su estado.

La forma más sencilla sería meter todos los puertos y el "Host description" bajo solo un elemento (por ejemplo, otra tabla) y que sea el contenedor de ese elemento (la fila que lo contiene), el que tenga el 'id'. Así, la función JavaScript solo tiene que ocultar/mostrar ese elemento.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Notapor situ » 2008-02-24 11:35 @524

Explorer,

Estoy usando tu código ya que me di cuenta que tiene una mejor performance que el mío.

Ya actualicé el código del post, pero ahora te molesto porque quiero agregar una nueva tabla la cual me indica el tiempo de ejecución pero esta no aparece escondida como la de los puertos, me gustaría que sea igual.

Después tengo otro problema el cual es que al hacerle click a la IP obtengo un "renglón" en blanco y abajo los ports, ¿hay posibilidades que este renglón no este más?, así que queda todo pegado.

Gracias
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor explorer » 2008-02-24 19:30 @854

Para esconderla, hay que agregar el style = 'display:none', al Tr() o a la table().

Y en cuanto al renglón, creo que te refieres al br() que está entre las dos tablas. Lo quitas y listo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor situ » 2008-02-24 22:20 @972

Como siempre, un lujo. La verdad que no me había dado cuenta del br :d Muchísimas gracias.
Te molesto nuevamente porque me gustaría implementar dentro del código lo siguiente, pero la verdad que no me estoy dando cuenta de cómo hacerlo, me gustaría que sea igual a los demás, que esté invisible hasta que haga click sobre la IP.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
sub scan_complete {
my $self = shift;
    my $host = shift;
            print F "  <tr><td bgcolor=#c0c0c0> <font face=Verdana size=1>";
            print F "Host Descripcion:\n<br>";
   for my $match ($host->os()->osmatches()) {
        print F "Host could be of type: " . $match->name(),"\n<br>";
 }
for my $c ($host->os()->osclasses()) {
         print F "-- " . $c->vendor() . "\n<br>";
        print F"- OS generation: " . $c->osgen() . "\n<br>";
        print F"- OS family:     " . $c->osfamily() . "\n<br>";
        print F"- OS Type:       " . $c->type() . "\n<br>";
 }
 
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Acá está el código completo armado con mi script viejo, pero me gustaría adaptar esa parte al nuevo que deje en la primera hoja.
http://pastebin.org/21112

Muchas Gracias
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor explorer » 2008-02-25 07:25 @351

A ver...

Para que un elemento (HTML) esté oculto hay que agregarle el estilo ya repetido varias veces: display:none. Si quieres que quede oculto una fila, debes agregar el estilo al <tr>. Si es a la tabla, al <table> (mira el código HTML generado por el cgi).

Para hacer que aparezca y desaparezca hay que hacer varias cosas:
* Disponer de una rutina JavaScript que haga el cambio (esto ya está puesto en el código).
* A esa rutina le tenemos que pasar el nombre ID del elemento que queremos esconder/mostrar.
* Lo anterior implica que, además de agregar el estilo de oculto al elemento, también debemos agregarle el atributo 'id=un-nombre' para que la rutina JavaScript pueda encontrarlo.

En el código que muestras, si quieres ocultar la fila (tr) deberás agregarle los atributos id y style. Y en el id, asegurarte que le das un nombre único (debe existir solo un id por página, distinto a los demás).

En el código nuevo, fíjate que pone
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
id => $_->{addresses}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
para mostrar que estamos creando varios ID distintos (en función de la dirección del host). Si miras el código HTML generado, los verás.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Anterior

Volver a Módulos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado