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á.
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.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?
fuente
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
, ywindow
tiene propiedadeswindow.document
ywindow.screen
propiedades. La pestaña del navegadorwindow
es el contexto global, de mododocument
yscreen
se refieren awindow.document
ewindow.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 propiowindow
objeto, anidado dentro de una ventana principal. Cada una de estas ventanas obtiene su propio objeto global separado.window.window
siempre se refiere awindow
, perowindow.parent
ywindow.top
podría referirse a encerrar ventanas, que da acceso a otros contextos de ejecución. Además dedocument
y sescreen
describe a continuación, laswindow
propiedades incluyensetTimeout()
ysetInterval()
vincular controladores de eventos a un temporizadorlocation
dando la URL actualhistory
con métodosback()
yforward()
dando el historial mutable de la pestañanavigator
describiendo el software del navegadordocument
Cada
window
objeto tiene undocument
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 HTMLEl elemento de párrafo puede ser referenciado por cualquiera de los siguientes:
window.holyCow
owindow["holyCow"]
document.getElementById("holyCow")
document.body.firstChild
document.body.children[0]
screen
El
window
objeto también tiene unscreen
objeto con propiedades que describen la pantalla física:propiedades de pantalla
width
yheight
son la pantalla completapropiedades de pantalla
availWidth
yavailHeight
omitir la barra de herramientasLa 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 cualquierdocument
elemento devolverá un objeto contop
,left
,bottom
, yright
las propiedades que describen la localización del elemento en la ventana gráfica.fuente
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.fuente
document
también puede serwindow.document
,screen
puede serwindow.screen
ywindow
puede serwindow.window
(owindow.window.window
) :-Pwindow
es una variable global, lo que la convierte en una propiedad delwindow
objeto global . :-)la
window
contiene todo, para que pueda llamarwindow.screen
ywindow.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:
window
es la raíz de todo,screen
solo tiene dimensiones de pantalla ydocument
es el principal objeto DOM. así que puedes pensar quewindow
es como un súperdocument
...fuente
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.
fuente