jueves, 26 de julio de 2007

Transparencias con javascript

He estado investigando un poco el tema, al final he llegado a la conclusión que aún no hay una manera estándar de manejar las transparencias con javascript.

Yo lo he conseguido manejar de la siguiente forma:

var object = document.getElementById(id).style;
object.opacity = (opacity / 100);
object.MozOpacity = (opacity / 100);
object.KhtmlOpacity = (opacity / 100);
object.filter = "alpha(opacity=" + opacity + ")";


Supuestamente deberia funcionar en todos los navegadores (aunque en konqueror no se por que no funciona), cada línea es para un navegador, para que os hagais una idea de como está la cosa.

miércoles, 4 de julio de 2007

Buscando los enlaces de una web

Pongo otro ejemplo de lo bueno que es perl tratando textos, es un script simple que extrae los enlaces de una web, hay algunos tipos de enlaces que no filtra del todo bien, pero como era solo un experimento...tampoco me he preocupado.


#!/usr/bin/perl
use IO::Socket;

#analyzer, extrae los enlaces de una pagina web determinada

unless (@ARGV > 1) { die "Uso: $0 host documento" }
$host = shift(@ARGV);
foreach $document ( @ARGV ) {
$remote = IO::Socket::INET->new(Proto => "tcp", PeerAddr => $host, PeerPort => "http(80)");

unless ($remote) { die "No se puede conectar a $host" }

$remote->autoflush(1);
print $remote "GET $document HTTP/1.0\n\n";

push(@respuesta, <$remote>);
while (<$remote>) {push(@respuesta,<$remote>);}
$texto = join(" ",@respuesta);


#Extrae los enlaces
while ($texto=~/(href=)([^>]+)>/g){
$dir=$2;

#Elimina las comillas y limpia algunas direcciones
if($dir=~/\"([\s\S]+)\"[\s\S]*/){
$dir_limpia=$1;

#Elimina los enlaces que no empiecen por http o https
if($dir_limpia=~/^http/ or $dir_limpia=~/^https/){
print "$dir_limpia\n";
}
}
}

close $remote;
}



No tiene mucha utilidad por si solo, pero puede integrarse en programas más grandes, un ejemplo de funcionamiento, si ejecutamos: ./analyzer.pl google.es "/search?hl=es&q=javiyu&btnG=Buscar+con+Google&meta="

Obtendremos como salida los enlaces de la búsqueda en google.

...
http://javiyu.blogspot.com/
http://216.239.59.104/search?q=cache:Ai8OiBXDTQEJ:javiyu.blogspot.com/+javiyu&hl=es&ct=clnk&cd=4&ie=UTF-8
http://javiyu.blogspot.com/search/label/redes
...