Mie Feb 13, 2008 8:58 pm
|
 |
situ
Perlero Frecuente

|
Registrado: 09 Abr 2007
Mensajes: 132
|
|
|
|
|
Ah ok.
Consulta ¿pero "display:none" es propio del CGI? ¿o estás usando expresiones de CSS? |
|
|
|
Jue Feb 14, 2008 3:31 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3889
Ubicación: Valladolid, España
|
|
|
|
|
| Es una característica del CSS. Bueno... es un estilo de algunos de los componentes HTML de una página. |
|
Vie Feb 15, 2008 7:44 am
|
 |
situ
Perlero Frecuente

|
Registrado: 09 Abr 2007
Mensajes: 132
|
|
|
|
|
Ah.
Serías tan amable de pasarme algún link o si podes de mostrarme un ejemplo más sencillo utilizando el código anterior.
Gracias. |
|
Vie Feb 15, 2008 9:29 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3889
Ubicación: Valladolid, España
|
|
|
|
Vie Feb 15, 2008 12:03 pm
|
 |
situ
Perlero Frecuente

|
Registrado: 09 Abr 2007
Mensajes: 132
|
|
|
|
|
Explorer,
Perdón que te moleste nuevamente, pero estoy probando y puedo hacer que no se vea el tr, por ejemplo. En realidad me gustaría tratar que sea como lo hiciste vos.
Digamos ver el título de la tabla pero que el contenido esté oculto y verlo recién al hacerle click al título. ¿Me podrías ayudar :d ?
En la hoja 1 dejé el código actualizado.
La que quiero hacer desaparecer es la que me muestra "Host description".
Gracias. |
|

Vie Feb 15, 2008 6:08 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3889
Ubicación: Valladolid, España
|
|
|
|
|
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. |
|

Dom Feb 24, 2008 10:35 am
|
 |
situ
Perlero Frecuente

|
Registrado: 09 Abr 2007
Mensajes: 132
|
|
|
|
|
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 |
|
Dom Feb 24, 2008 6:30 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3889
Ubicación: Valladolid, España
|
|
|
|
|
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. |
|

Dom Feb 24, 2008 9:20 pm
|
 |
situ
Perlero Frecuente

|
Registrado: 09 Abr 2007
Mensajes: 132
|
|
|
|
|
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.
| Perl: |
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>";
}
|
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 |
|

Lun Feb 25, 2008 6:25 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3889
Ubicación: Valladolid, España
|
|
|
|
|
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
| Perl: | id => $_->{addresses} | 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. |
|

Powered by phpBB © 2001, 2005 phpBB Group
|