Ante todo perdon por marear tanto la perdiz sobre este script, pero lo estoy usando y me da problemas.
He colgado un html en
www.flomeyca.com/js para que comprobeis lo que os digo (a.html es en version html y a.php es bajo php). El codigo de ejemplo es el siguiente:
Código HTML:
<html>
<head>
<script type="text/javascript">
var _img_grande;
function mostrar() {
if (_img_grande.complete)
{
alert ("Imagen cargada");
}
else
{
alert ("Imagen NO cargada");
}
var ops = "top=" + ((screen.height - _img_grande.height) / 2);
ops += ",left=" + ((screen.width - _img_grande.width) / 2);
ops += ",width=" + _img_grande.width + ",height=" + _img_grande.height;
var contenido = "<html><body style='background-image: url(" + _img_grande.src + ")'></body></html>";
var ventana = window.open("", "", ops);
alert ("Se ha hecho window.open");
ventana.document.open();
alert ("Se ha hecho document.open");
ventana.document.write(contenido);
alert ("Se ha hecho ventana.document.write");
ventana.document.close();
alert ("Se ha hecho ventana.document.close");
}
function cargando() {
if (_img_grande.complete) mostrar();
else setTimeout("cargando()", 100);
}
function abrir(imagen) {
_img_grande = new Image();
_img_grande.src = imagen;
cargando();
}
</script>
</head>
<body>
<img src="imagenes/thumbs/a.jpg" onclick="abrir('imagenes/a.jpg')"/>
</body>
</html>
Ahora el problema:
En windows xp con IE 6.0, cuando intento abrir la ventana, me da el error: "document es nulo o no es un objeto". En cambio en windows 2000 con IE 5 o 6 no falla. La imagen que he colgado ocupa sobre los 500 Kb para comprobar que funciona "_img_grande.complete". He metido mensajes entre las lineas para que veais cuando falla.
Un saludo y perdon por el mareo