Veo que estos términos se usan indistintamente como el entorno global para el DOM. ¿Cuál es la diferencia (si hay una) y cuándo debo usar cada una?¿Cuál es la diferencia entre ventana, pantalla y documento en Javascript?
Respuesta
Window
es la raíz del objeto JavaScript principal, también conocido como el objeto global en un navegador, también se puede tratar como la raíz del modelo de objetos del documento. Puede acceder a él como window
en la mayoría de los casos (en el navegador);
window.screen
es un pequeño objeto de información sobre las dimensiones de la pantalla física.
window.document
o simplemente document
es el objeto principal del modelo de objeto de documento visible (o mejor aún: representado)/DOM.
El window
es el objeto global real.
El screen
es la pantalla, contiene propiedades sobre la pantalla 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 –
He comprobado y window.window.window.window también funciona; P –
@PeterAronZentai: Eso es porque 'window' es una variable global, lo que la convierte en una propiedad del objeto' window' global. :-) –
window
contiene todo, por lo que puede llamar al window.screen
y window.document
para obtener esos elementos. Echa un vistazo a este violín, bastante-imprimir el contenido de cada objeto: http://jsfiddle.net/JKirchartz/82rZu/
también se puede ver el contenido del objeto en herramientas de Firebug/dev así:
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. por lo que se puede pensar en ello como window
ser como un super-document
...
La ventana es lo primero que se carga en el navegador. Este objeto de ventana tiene la mayoría de las propiedades, como length, innerWidth, innerHeight, name, si se ha cerrado, sus padres y más.
El documento objeto es su html, aspx, php u otro documento que se cargará en el navegador. El documento realmente se carga dentro del objeto ventana y tiene propiedades disponibles como título, URL, cookie, etc. ¿Qué significa esto realmente? Esto 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 breve como document.property.
Bueno, la ventana es lo primero que se carga en el navegador. Este objeto de ventana tiene la mayoría de las propiedades, como length, innerWidth, innerHeight, name, si se ha cerrado, sus padres y más.
¿Qué pasa con el objeto del documento? El objeto del documento es su html, aspx, php u otro documento que se cargará en el navegador. El documento realmente se carga dentro del objeto 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 document es window.document.propiedad que también está disponible en breve como document.property.
Eso parece bastante simple. Pero, ¿qué sucede una vez que se introduce un IFRAME?
Es engañoso para alguien que intenta aprender los conceptos básicos: "El objeto del documento es su html, aspx, php u otro documento que se cargará en el navegador". El navegador representa HTML y CSS y ejecuta JavaScript. El navegador no ve los archivos con lenguajes del lado del servidor como PHP. –
En pocas palabras, con más detalle a continuación,
window
es el contexto de ejecución y el objeto global para ese contexto de JSdocument
contiene el HTMLscreen
describe pantalla completa de la pantalla física
Ver W3C y Mozilla referencias para detalles acerca de estos objetos. La relación más básica entre las tres es que cada pestaña del navegador tiene su propia window
, y window
tiene propiedades window.document
y window.screen
. La pestaña del navegador window
es el contexto global, por lo que document
y screen
se refieren a window.document
y window.screen
. Más detalles sobre los tres objetos están debajo, siguiendo Flanagan's JavaScript: Definitive Guide.
window
Cada pestaña del navegador tiene su propio nivel superior window
objeto. Cada elemento (y obsoleto <frame>
) también tiene su propio objeto window
, anidado dentro de una ventana principal. Cada una de estas ventanas obtiene su propio objeto global por separado. window.window
siempre se refiere a window
, pero window.parent
y window.top
pueden referirse a las ventanas adjuntas, dando acceso a otros contextos de ejecución. Además de document
y screen
se describe a continuación, window
propiedades incluyen
setTimeout()
ysetInterval()
controladores de eventos de unión a un temporizadorlocation
dando la URL actualhistory
con métodosback()
yforward()
dando la historia mutable de la pestañanavigator
que describe el software del navegador
document
Cada objeto window
tiene un objeto document
a ser prestados. Estos objetos se confunden en parte porque los elementos HTML se agregan al objeto global cuando se les asigna una ID única. P.ej., En el fragmento de HTML
<body>
<p id="holyCow"> This is the first paragraph.</p>
</body>
el elemento de párrafo se puede hacer referencia por cualquiera de los siguientes:
window.holyCow
owindow["holyCow"]
document.getElementById("holyCow")
document.body.firstChild
document.body.children[0]
screen
El objeto window
también tiene un objeto screen
con propiedades que describen la pantalla física:
propiedades de la pantalla
width
yheight
son la pantalla completapropiedades de la pantalla
availWidth
yavailHeight
omiten el barra de herramientas
La parte de una pantalla que muestra el documento renderizado es viewport en JavaScript, lo que es potencialmente confuso porque llamamos a la porción de la pantalla una ventana cuando hablamos de interacciones con el sistema operativo. El método getBoundingClientRect()
de cualquier elemento document
devolverá un objeto con las propiedades top
, left
, bottom
y right
que describen la ubicación del elemento en la ventana gráfica.
hay una instrucción equivalente a 'window.onload' utilizando document object?. – FilipeCanatto
@FilipeCanatto ver https://stackoverflow.com/questions/588040/window-onload-vs-document-onload –
- 1. JavaScript: ¿Cuál es la diferencia entre 'documento' y 'HTML'
- 2. ¿Cuál es la diferencia entre uno mismo y la ventana?
- 3. ¿Cuál es la diferencia entre este, auto, ventana y window.self
- 4. Diferencia entre $ (ventana) .width() vs $ (documento) .width()
- 5. ¿cuál es la diferencia entre text/javascript y aplicación/javascript
- 6. Cuál es la diferencia entre `$ (ventana) .load (función() {})` y `$ (función() {})`
- 7. ¿Cuál es la diferencia entre 987 y (987) en JavaScript?
- 8. En JavaScript, ¿cuál es la diferencia entre indexOf() y search()?
- 9. ¿Cuál es la diferencia entre undefined y window.undefined en JavaScript?
- 10. ¿Cuál es la diferencia entre children y childNodes en JavaScript?
- 11. ¿Cuál es la diferencia entre isPrototypeOf y instanceof en Javascript?
- 12. ¿Cuál es la diferencia entre $ get y $ find en JavaScript?
- 13. ¿Cuál es la diferencia entre 'y "en JavaScript?
- 14. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 15. ¿Cuál es la diferencia entre JavaScript y script ECMA?
- 16. ¿Cuál es la diferencia entre JavaScript y DOM?
- 17. ¿Cuál es la diferencia entre JavaScript y JScript?
- 18. ¿Cuál es la diferencia entre JavaScript y Java?
- 19. ¿Cuál es la diferencia entre AJAX con JavaScript y jQuery?
- 20. ¿Cuál es la diferencia práctica entre la ventana de comando y la ventana Inmediato?
- 21. ¿Cuál es la diferencia entre + = y = +?
- 22. ¿cuál es la diferencia entre:.! y: r !?
- 23. ¿Cuál es la diferencia entre ".equals" y "=="?
- 24. Cuál es la diferencia entre $ y jQuery
- 25. Cuál es la diferencia entre = y: =
- 26. Cuál es la diferencia entre $ (...) y `...`
- 27. ¿Cuál es la diferencia entre dict() y {}?
- 28. ¿Cuál es la diferencia entre GetClientRect y GetWindowRect en WinApi?
- 29. ¿Cuál es la diferencia entre DOCUMENT_URI y URI_REQUEST en SSI?
- 30. ¿Cuál es la diferencia entre {0} y ""?
Un documento puede ser más grande que una ventana: la ventana es la parte "visible" de su navegador. – Mandy
@Mandy un elemento html si no es parte del documento no está visible. puede crear iframes cuyas ventanas no estén totalmente visibles hasta que adjunte el iframe al documento –
¿Es el objeto de ventana idéntico independientemente de qué página web está visitando? ¿Y el documento es un objeto javascript que contiene la información sobre esa página web? – Costa