Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/11/2003, 19:52
Mostlair
 
Fecha de Ingreso: noviembre-2003
Ubicación: En casa
Mensajes: 65
Antigüedad: 20 años, 5 meses
Puntos: 0
Marcomty: decime si te sirve lo siguiente:

1.- Realizás una definición de marcos que divida en columnas de 100 % la de la izquierda y le dejás * al de la derecha (o sea nada). En el de la izquierda vas a cargar la página que vos querés que se vea, y en el de la derecha se va a precargar otra página, pero la precarga tiene que comenzar despues de que se terminó de cargar la página que se quiere visualizar, por lo tanto como URL en el marco de la derecha ponés: about:blank, y lo vas a controlar con javascript. En la página de definición de marcos hacés que en el frame de la izq. se vea tu página principal (index.htm por ej.) A todas las páginas les agregas el sig. script:

/* Estoy usando como nombres de marcos: izq para el que muestra tu página y der para el marco en que se realiza la precarga */

var URLIzquierda=top.izq.location.href; //contiene la URL del marco izquierdo
var URLPagina=document.location.href; //contiene la URL del documento en el que está el script
var URLPrecargar=""; //aquí debes poner la página que se precargará

function Precargar() {
if (URLIzquierda==URLPagina) top.der.location.href=URLPrecargar;
}

Y a la etiqueta <BODY> le agregás: onload="Precargar()". Lo que hace es comparar la URL del documento en que está el script con la URL del documento del marco izquierdo, y si es así cargar otra página en el marco derecho. Cuando una página se carga en el marco izquierdo se carga una página en el derecho; en cambio, cuando se carga una página en el marco derecho no pasa nada. Esto evita que una página llame a otra y así sucesivamente, haciendole descargar todo el sitio al usuario.

2.- El siguiente código debería funcionar perfectamente en cualquier explorador, pero solo lo probé en el IE6, si lo probás en otros comentame que tal funcionó!

function abrir(imagen, titulo) {

var HTML = "<html><head><title>" + titulo + "</title>";
HTML += "</head><body topmargin='0' leftmargin='0' marginwidth='0' marginheight='0'>";
HTML += "<img src='" + imagen + "' onload='window.opener.cambiar()'>";
HTML += "</body></html>";
ventana = window.open('','','height=300, width=300');
ventana.document.write(HTML);

}

function cambiar() {
var anchoDisponible = 0;
var altoDisponible = 0;

if (ventana.window.innerWidth) anchoDisponible = ventana.window.innerWidth;
else if ((ventana.document.body)&&(ventana.document.body.c lientWidth)) anchoDisponible = ventana.document.body.clientWidth;
if (ventana.window.innerHeight) anchoDisponible = ventana.window.innerHeight;
else if ((ventana.document.body)&&(ventana.document.body.c lientHeight)) altoDisponible = ventana.document.body.clientHeight;

var anchoImagen = ventana.document.images[0].width;
var altoImagen = ventana.document.images[0].height;

var diferenciaAncho = anchoImagen - anchoDisponible;
var diferenciaAlto = altoImagen - altoDisponible;
ventana.resizeBy(diferenciaAncho,diferenciaAlto);

}

innerWidth e innerHeight son propiedades del netscape, y body.clientWidth y body.clientHeight son para el explorer, de esta forma se capta el espacio disponible; si este valor lo restás al espacio de la imagen te da cuanto tiene que cambiar la ventana (negativo si tiene que disminuir y positivo si se tiene que agrandar)

Para cada imagen que desees incluir le tenés que poner el controlador onclick="abrir('imagen123.jpg','mi imagen')" o bien que la imagen sea un link: <a href="javascript:abrir('imagen123.jpg','mi imagen')"><img src='imagen_link.jpg'></a>

Comentame que te sirvió y que no, a ver si puedo hacer algo más.