Veo estos términos usados indistintamente como el entorno global para el DOM. ¿Cuál es la diferencia (si hay una) y cuándo debo usar cada una?
fuente
Veo estos términos usados indistintamente como el entorno global para el DOM. ¿Cuál es la diferencia (si hay una) y cuándo debo usar cada una?
Window
es la raíz principal del objeto JavaScript, también conocida como la global object
de un navegador, también puede tratarse como la raíz del modelo de objeto del documento. Puedes acceder a él comowindow
window.screen
o solo screen
es un pequeño objeto de información sobre las dimensiones físicas de la pantalla.
window.document
o solo document
es el objeto principal del modelo de objeto de documento / DOM potencialmente visible (o mejor aún: renderizado).
Dado que window
es el objeto global, puede hacer referencia a cualquier propiedad con solo el nombre de la propiedad, por lo que no tiene que anotarlo, window.
el tiempo de ejecución lo resolverá.
Bueno, la ventana es lo primero que se carga en el navegador. Este objeto de ventana tiene la mayoría de las propiedades como longitud, innerWidth, innerHeight, nombre, si se ha cerrado, sus padres y más.
¿Qué pasa con el objeto del documento entonces? El objeto del documento es su html, aspx, php u otro documento que se cargará en el navegador. El documento en realidad se carga dentro del objeto de la ventana y tiene propiedades disponibles como título, URL, cookie, etc. ¿Qué significa esto realmente? Eso significa que si desea acceder a una propiedad para la ventana, es window.property, si es un documento, es window.document.property, que también está disponible en resumen como document.property.
Eso parece bastante simple. Pero, ¿qué sucede una vez que se introduce un IFRAME?
Brevemente, con más detalles a continuación,
window
es el contexto de ejecución y el objeto global para JavaScript de ese contextodocument
contiene el DOM, inicializado al analizar HTMLscreen
describe la pantalla completa de la pantalla físicaConsulte las referencias de W3C y Mozilla para obtener detalles sobre estos objetos. La relación más básica entre los tres es que cada pestaña del navegador tiene la suya propia window
, y window
tiene propiedades window.document
y window.screen
propiedades. La pestaña del navegador window
es el contexto global, de modo document
y screen
se refieren a window.document
e window.screen
. A continuación encontrará más detalles sobre los tres objetos, siguiendo el JavaScript de Flanagan: Guía definitiva .
window
Cada pestaña del navegador tiene su propio window
objeto de nivel superior . Cada elemento <iframe>
(y en desuso <frame>
) también tiene su propio window
objeto, anidado dentro de una ventana principal. Cada una de estas ventanas obtiene su propio objeto global separado. window.window
siempre se refiere a window
, pero window.parent
y window.top
podría referirse a encerrar ventanas, que da acceso a otros contextos de ejecución. Además de document
y se screen
describe a continuación, las window
propiedades incluyen
setTimeout()
y setInterval()
vincular controladores de eventos a un temporizadorlocation
dando la URL actualhistory
con métodos back()
y forward()
dando el historial mutable de la pestañanavigator
describiendo el software del navegadordocument
Cada window
objeto tiene un document
objeto para ser renderizado. Estos objetos se confunden en parte porque los elementos HTML se agregan al objeto global cuando se les asigna una identificación única. Por ejemplo, en el fragmento de HTML
<body>
<p id="holyCow"> This is the first paragraph.</p>
</body>
El elemento de párrafo puede ser referenciado por cualquiera de los siguientes:
window.holyCow
o window["holyCow"]
document.getElementById("holyCow")
document.body.firstChild
document.body.children[0]
screen
El window
objeto también tiene un screen
objeto con propiedades que describen la pantalla física:
propiedades de pantalla width
y height
son la pantalla completa
propiedades de pantalla availWidth
y availHeight
omitir la barra de herramientas
La parte de una pantalla que muestra el documento representado es la ventana gráfica en JavaScript, lo cual es potencialmente confuso porque llamamos a la parte de la pantalla de una aplicación una ventana cuando hablamos de interacciones con el sistema operativo. El getBoundingClientRect()
método de cualquier document
elemento devolverá un objeto con top
, left
, bottom
, y right
las propiedades que describen la localización del elemento en la ventana gráfica.
window.onload
usar el objeto de documento?
El window
es el objeto global real.
La screen
es la pantalla, contiene propiedades sobre la visualización del usuario.
El document
es donde está el DOM.
document
también puede ser window.document
, screen
puede ser window.screen
y window
puede ser window.window
(o window.window.window
) :-P
window
es una variable global, lo que la convierte en una propiedad del window
objeto global . :-)
la window
contiene todo, para que pueda llamar window.screen
y window.document
para conseguir esos elementos. Echa un vistazo a este violín, imprimiendo los contenidos de cada objeto: http://jsfiddle.net/JKirchartz/82rZu/
También puede ver el contenido del objeto en herramientas firebug / dev como esta:
console.dir(window);
console.dir(document);
console.dir(screen);
window
es la raíz de todo, screen
solo tiene dimensiones de pantalla y document
es el principal objeto DOM. así que puedes pensar que window
es como un súper document
...
La ventana es lo primero que se carga en el navegador. Este objeto de ventana tiene la mayoría de las propiedades como longitud, innerWidth, innerHeight, nombre, si se ha cerrado, sus padres y más.
El objeto del documento es su html, aspx, php u otro documento que se cargará en el navegador. El documento en realidad se carga dentro del objeto de la ventana y tiene propiedades disponibles como título, URL, cookie, etc. ¿Qué significa esto realmente? Eso significa que si desea acceder a una propiedad para la ventana, es window.property, si es un documento, es window.document.property, que también está disponible en resumen como document.property.
window
con viewport . Awindow
es el objeto de JavaScript para la pestaña del navegador o<iframe>
(o en desuso<frame>
). La ventana gráfica es el rectángulo del renderizadodocument
visto dentro de la pestaña o marco.