image
Valora:   3.89/5 de 82
Inicio » Javascript » Manual » Objetos del Navegador




El objeto window

Por Lola Cárdenas y Joaquin Gracia.
rinconprog.metropoli2000.com

Se trata del objeto más alto en la jerarquía del navegador (navigator es un objeto independiente de todos en la jerarquía), pues todos los componentes de una página web están situados dentro de una ventana. El objeto window hace referencia a la ventana actual. Veamos a continuación sus propiedades y sus métodos.

Propiedades

  • closed. Válida a partir de Netscape 3 en adelante y MSIE 4 en adelante. Es un booleano que nos dice si la ventana está cerrada ( closed = true ) o no ( closed = false ).
  • defaultStatus. Cadena que contiene el texto por defecto que aparece en la barra de estado (status bar) del navegador.
  • frames. Es un array: cada elemento de este array (frames[0], frames[1], ...) es uno de los frames que contiene la ventana. Su orden se asigna según se definen en el documento HTML.
  • history. Se trata de un array que representa las URLS visitadas por la ventana (están almacenadas en su historial).
  • length. Variable que nos indica cuántos frames tiene la ventana actual.
  • location. Cadena con la URL de la barra de dirección.
  • name. Contiene el nombre de la ventana, o del frame actual.
  • opener. Es una referencia al objeto window que lo abrió, si la ventana fue abierta usando el método open() que veremos cuando estudiemos los métodos.
  • parent. Referencia al objeto window que contiene el frameset.
  • self. Es un nombre alternativo del window actual.
  • status. String con el mensaje que tiene la barra de estado.
  • top. Nombre alternativo de la ventana del nivel superior.
  • window. Igual que self: nombre alternativo del objeto window actual.

Métodos

  • alert(mensaje). Muestra el mensaje 'mensaje' en un cuadro de diálogo
  • blur(). Elimina el foco del objeto window actual. A partir de NS 3, IE 4.
  • clearInterval(id). Elimina el intervalo referenciado por 'id' (ver el método setInterval(), también del objeto window). A partir de NS 4, IE 4.
  • clearTimeout(nombre). Cancela el intervalo referenciado por 'nombre' (ver el método setTimeout(), también del objeto window).
  • close(). Cierra el objeto window actual.
  • confirm(mensaje). Muestra un cuadro de diálogo con el mensaje 'mensaje' y dos botones, uno de aceptar y otro de cancelar. Devuelve true si se pulsa aceptar y devuelve false si se pulsa cancelar.
  • focus(). Captura el foco del ratón sobre el objeto window actual. A partir de NS 3, IE 4.
  • moveBy(x,y). Mueve el objeto window actual el número de pixels especificados por (x,y). A partir de NS 4.
  • moveTo(x,y). Mueve el objeto window actual a las coordenadas (x,y). A partir de NS 4.
  • open(URL,nombre,caracteristicas). Abre la URL que le pasemos como primer parámetro en una ventana de nombre 'nombre'. Si esta ventana no existe, abrirá una ventana nueva en la que mostrará el contenido con las características especificadas. Las características que podemos elegir para la ventana que queramos abrir son las siguientes:
    • toolbar = [yes|no|1|0]. Nos dice si la ventana tendrá barra de herramientas (yes,1) o no la tendrá (no,0).
    • location = [yes|no|1|0]. Nos dice si la ventana tendrá campo de localización o no.
    • directories = [yes|no|1|0]. Nos dice si la nueva ventana tendrá botones de dirección o no.
    • status = [yes|no|1|0]. Nos dice si la nueva ventana tendrá barra de estado o no.
    • menubar = [yes|no|1|0]. Nos dice si la nueva ventana tendrá barra de menús o no.
    • scrollbars = [yes|no|1|0]. Nos dice si la nueva ventana tendrá barras de desplazamiento o no.
    • resizable = [yes|no|1|0]. Nos dice si la nueva ventana podrá ser cambiada de tamaño (con el ratón) o no.
    • width = px. Nos dice el ancho de la ventana en pixels.
    • height = px. Nos dice el alto de la ventana en pixels.
    • outerWidth = px. Nos dice el ancho *total* de la ventana en pixels. A partir de NS 4.
    • outerHeight = px. Nos dice el alto *total* de la ventana el pixels. A partir de NS 4
    • left = px. Nos dice la distancia en pixels desde el lado izquierdo de la pantalla a la que se debe colocar la ventana.
    • top = px. Nos dice la distancia en pixels desde el lado superior de la pantalla a la que se debe colocar la ventana.
  • prompt(mensaje,respuesta_por_defecto). Muestra un cuadro de diálogo que contiene una caja de texto en la cual podremos escribir una respuesta a lo que nos pregunte en 'mensaje'. El parámetro 'respuesta_por_defecto' es opcional, y mostrará la respuesta por defecto indicada al abrirse el cuadro de diálogo. El método retorna una cadena de caracteres con la respuesta introducida.
  • scroll(x,y). Desplaza el objeto window actual a las coordenadas especificadas por (x,y). A partir de NS3, IE4.
  • scrollBy(x,y). Desplaza el objeto window actual el número de pixels especificado por (x,y). A partir de NS4.
  • scrollTo(x,y). Desplaza el objeto window actual a las coordenadas especificadas por (x,y). A partir de NS4.
  • setInterval(expresion,tiempo). Evalua la expresión especificada después de que hayan pasado el número de milisegundos especificados en tiempo. Devuelve un valor que puede ser usado como identificativo por clearInterval(). A partir de NS4, IE4.
  • setTimeout(expresion,tiempo). Evalua la expresión especificada después de que hayan pasado el número de milisegundos especificados en tiempo. Devuelve un valor que puede ser usado como identificativo por clearTimeout(). A partir de NS4, IE4.

Me dejo en el tintero otras propiedades y métodos como innerHeight, innerWidth, outerHeight, outerWidth, pageXOffset, pageYOffset, personalbar, scrollbars, back(), find(["cadena"],[caso,bkwd]), forward(), home(), print(), stop()... todas ellas disponibles a partir de NS 4 y cuya explicación remito como ejercicio al lector interesado en saber más sobre el objeto window.

<!-- Manual de JavaScript de WebEstilo.com -->
<HTML>
<HEAD>
   <title>Ejemplo de JavaScript</title>
<script LANGUAGE="JavaScript">
<!--
function moverVentana()
{
   mi_ventana.moveBy(5,5);
   i++;
   if (i<20)
      setTimeout('moverVentana()',100);
   else
      mi_ventana.close();
}
//-->
</script>


</HEAD>
<BODY>
<script LANGUAGE="JavaScript">
<!--
   var opciones="left=100,top=100,width=250,height=150", i= 0;

   mi_ventana = window.open("","",opciones);
   mi_ventana.document.write("Una prueba de abrir ventanas");
   mi_ventana.moveTo(400,100);
   moverVentana();
//-->
</script>

</BODY>
</HTML>

Ejecutar ejemplo Ver código







Comparte


Aportaciones de usuarios Añadir una aportación
jbosch(vosk) 20/12/2003

Esta es la primera aportacion que hago en el manual, y se refiere a una operacion concreta con el objeto 'window'. La idea de esta aportacion sale de una pregunta formulada por Rober (el 02/12/2003) en el foro de JavaScript que por causas que ignoro no admite respuestas (tal vez deba reportarlo como error). La práctica consiste en detectar si una ventana (secundaria) ha sido abierta desde otra (principal). Para ello me voy a valer del evento 'onError' (presupongo que no hay ningun error en el codigo fuente de la página) y de la propiedad 'opener'. El script resultante es de la forma:

<script language="JavaScript">
function A()
{
window.onerror=B
window.opener.focus();
window.focus();
alert("Esta ventana SI tiene opener");
}
function B()
{
alert("No hay ningun opener para esta ventana.");
return true;
}
</script>

Supongamos que desde una ventana principal se abre una secundaria que lleva este script y mediante un evento 'onLoad' en la etiqueta 'body' se llama y se ejecuta la funcion A();. En esta funcion primero se define que en caso de error (onError) se ejecute la funcion B() para evitar la alerta de error que viene por defecto en el navegador. Esta funcion B() solo se ejecutará en caso de que se produzca un error durante la ejecución de la funcion A(), y lleva la instruccion de no retornar y reemprender la ejecucion de la funcion desde la que fué llamada. La funcion A() simplemente trata de acceder a un objeto de una posible ventana parental para forzar un error conocido; en este caso trato de forzar el error accediendo a la propiedad 'opener' de la ventana secundaria: si no existe este 'opener' se producirá el error ("'window.opener' es nulo o no es un objeto"); si existe se continuará con la ejecucion de la función. Para evitar confusiones es necesario que esta funcion solo esté dirigida a forzar el error en vez de hacer otras operaciones no relacionadas con la finalidad de forzar este error conocido y que puedan originar otro error (en estos casos el evento onError se activaria igualmente aun existiendo realmente una ventana parental); por ejemplo supongamos que hay la siguiente funcion A():

function A()
{
window.onerror=B
window.opener.focus();
window.focus();
document.getElementById('a').style.visibility = "hidden"; //referida a un objeto inexistente
alert("Esta ventana SI tiene opener");
}

En caso que por despiste no exista realmente ningun objeto identificado como 'a' se produciría el error aun habiendo sido abierta la página desde otra principal. para evitar estos errores es necesario utilizar esta funcion de forma aislada y dirigida a un solo obetivo (forzar y detectar este error); tambien se puede hacer comparando el mensaje de error esperado con el que realmente se produce, de la siguiente forma:

<script language="JavaScript">
function A()
{
window.onerror=B
window.opener.focus();
window.focus();
document.getElementById('a').style.visibility = "hidden";
alert("Esta ventana SI tiene opener");
}
function B(mensaje)
{
if (mensaje=="'window.opener' es nulo o no es un objeto")
{
alert(mensaje);
return true;
}
return true;
}
</script>

donde lo que se hace simplemente es comprobar que el error que se produce es el esperado.

Los codigos han sido probados en MS Internet Explorer versiones 5.0, 5.5 y 6.0.
Espero que sea de ayuda.

jbosch(vosk)




Última modificación:11 de Mayo de 2009. Spain - España.
© 1998-2004 por . Todos los derechos reservados.