Eu vejo esses termos usados de forma intercambiável como o ambiente global para o DOM. Qual é a diferença (se houver) e quando devo usar cada um?
fonte
Eu vejo esses termos usados de forma intercambiável como o ambiente global para o DOM. Qual é a diferença (se houver) e quando devo usar cada um?
Window
é a principal raiz do objeto JavaScript, também conhecida como global object
em um navegador, também pode ser tratada como a raiz do modelo de objeto do documento. Você pode acessá-lo comowindow
window.screen
ou apenas screen
é um pequeno objeto de informação sobre dimensões físicas da tela.
window.document
ou apenas document
é o principal objeto do modelo de objeto de documento potencialmente visível (ou melhor ainda: renderizado) / DOM.
Como window
é o objeto global, você pode fazer referência a quaisquer propriedades dele apenas com o nome da propriedade - para que você não precise anotar window.
- ele será descoberto pelo tempo de execução.
window
com a viewport . Awindow
é o objeto JavaScript da guia do navegador ou<iframe>
(ou descontinuado<frame>
). A janela de exibição é o retângulo da renderizaçãodocument
vista na guia ou quadro.Bem, a janela é a primeira coisa que é carregada no navegador. Esse objeto de janela possui a maioria das propriedades, como length, innerWidth, innerHeight, name, se ele foi fechado, seus pais e muito mais.
E o objeto do documento, então? O objeto do documento é seu html, aspx, php ou outro documento que será carregado no navegador. O documento é carregado dentro do objeto da janela e possui propriedades disponíveis, como título, URL, cookie, etc. O que isso realmente significa? Isso significa que, se você deseja acessar uma propriedade para a janela, é window.property, se é documento, é window.document.property, que também está disponível em breve como document.property.
Isso parece bastante simples. Mas o que acontece depois que um IFRAME é introduzido?
fonte
Resumidamente, com mais detalhes abaixo,
window
é o contexto de execução e o objeto global para o JavaScript desse contextodocument
contém o DOM, inicializado pela análise de HTMLscreen
descreve a tela cheia da tela físicaConsulte as referências do W3C e Mozilla para obter detalhes sobre esses objetos. A relação mais básica entre os três é que cada aba do navegador tem a sua própria
window
, e umawindow
temwindow.document
ewindow.screen
propriedades. O navegador guia dewindow
é o contexto global, de mododocument
escreen
referem-se awindow.document
ewindow.screen
. Mais detalhes sobre os três objetos estão abaixo, seguindo o JavaScript de Flanagan: Guia Definitivo .window
Cada guia do navegador possui seu próprio
window
objeto de nível superior . Cada elemento<iframe>
(e descontinuado<frame>
) também possui seu própriowindow
objeto, aninhado em uma janela pai. Cada uma dessas janelas obtém seu próprio objeto global separado.window.window
sempre se refere awindow
, maswindow.parent
ewindow.top
pode se referir a janelas fechadas, dando acesso a outros contextos de execução. Alémdocument
escreen
descritas abaixo, aswindow
propriedades incluemsetTimeout()
esetInterval()
vinculando manipuladores de eventos a um timerlocation
dando o URL atualhistory
com métodosback()
eforward()
fornecendo o histórico mutável da guianavigator
descrevendo o software do navegadordocument
Cada
window
objeto tem umdocument
objeto a ser renderizado. Esses objetos ficam confusos em parte porque os elementos HTML são adicionados ao objeto global quando é atribuído um ID exclusivo. Por exemplo, no trecho HTMLo elemento de parágrafo pode ser referenciado por qualquer um dos seguintes:
window.holyCow
ouwindow["holyCow"]
document.getElementById("holyCow")
document.body.firstChild
document.body.children[0]
screen
O
window
objeto também possui umscreen
objeto com propriedades que descrevem a exibição física:propriedades da tela
width
eheight
são a tela cheiapropriedades da tela
availWidth
eavailHeight
omitir a barra de ferramentasA parte da tela que exibe o documento renderizado é a janela de visualização em JavaScript, que é potencialmente confusa porque chamamos a parte da tela de um aplicativo de janela quando falamos sobre interações com o sistema operacional. O
getBoundingClientRect()
método de qualquerdocument
elemento retornará com um objectotop
,left
,bottom
, eright
propriedades que descrevem a localização do elemento na janela de visualização.fonte
window.onload
uso do objeto de documento?O
window
é o objeto global real.A
screen
é a tela, que contém propriedades cerca de exibição do usuário.A
document
é onde o DOM é.fonte
document
também pode serwindow.document
,screen
pode serwindow.screen
, ewindow
pode serwindow.window
(ouwindow.window.window
) :-Pwindow
ocorre porque é uma variável global, o que a torna uma propriedade dowindow
objeto global . :-)o
window
contém tudo, para que você possa chamarwindow.screen
ewindow.document
obter esses elementos. Confira este violino, imprimindo bastante o conteúdo de cada objeto: http://jsfiddle.net/JKirchartz/82rZu/Você também pode ver o conteúdo do objeto nas ferramentas firebug / dev assim:
window
é a raiz de tudo,screen
apenas possui dimensões de tela edocument
é o principal objeto DOM. então você pode pensar nissowindow
como um super-document
...fonte
A janela é a primeira coisa que é carregada no navegador. Esse objeto de janela possui a maioria das propriedades, como length, innerWidth, innerHeight, name, se ele foi fechado, seus pais e muito mais.
O objeto do documento é seu html, aspx, php ou outro documento que será carregado no navegador. O documento é carregado dentro do objeto da janela e possui propriedades disponíveis, como título, URL, cookie, etc. O que isso realmente significa? Isso significa que, se você deseja acessar uma propriedade para a janela, é window.property, se é documento, é window.document.property, que também está disponível em breve como document.property.
fonte