Browser Object Model e o Objeto window - JavaScript
A interação com o navegador web e seus objetos é crucial em JavaScript. Utilizar objetos do navegador permite manipular elementos HTML na página ou interagir com o usuário.
Todos os objetos por meio dos quais o JavaScript interage com o navegador são descritos pelo conceito de Modelo de Objeto do Navegador (Browser Object Model, BOM).
O BOM pode ser visualizado como a seguinte estrutura:
No topo da estrutura, está o objeto principal, o window
document
O Objeto window
O objeto window
window
alert()
window.alert("Olá, mundo!")
alert("Olá, mundo!")
No entanto, sendo um objeto global, isso impõe algumas restrições. Por exemplo:
var alert = function(message) {
console.log("Mensagem: ", message);
};
window.alert("Olá, mundo!");
Aqui, uma variável global alert
var
window
alert()
window
Além disso, se declararmos qualquer variável global, ela estará acessível como uma propriedade do objeto window
var message = "hello";
console.log(window.message);
Propriedades do window
As propriedades do objeto window
: altura da janela incluindo barras de rolagem horizontais.innerHeight
: largura da janela incluindo barras de rolagem verticais.innerWidth
: altura externa da janela do navegador incluindo todas as barras de rolagem.outerHeight
: largura externa da janela do navegador incluindo todas as barras de rolagem.outerWidth
: alias parapageXOffset
.window.scrollX
: alias parapageYOffset
.window.scrollY
: posição da janela do navegador em relação ao lado esquerdo da tela.screenX
: posição da janela do navegador em relação ao topo da tela.screenY
: quantidade de pixels que a página da web foi rolada horizontalmente.scrollX
: quantidade de pixels que a página da web foi rolada verticalmente.scrollY
Componentes do navegador
A janela do navegador geralmente consiste em vários componentes que podem variar dependendo do navegador e das configurações pessoais. Em geral, uma janela típica de navegador inclui:
Barra de endereços para inserir URLs ou consultas de pesquisa(Address Bar).
Barra de status que indica se a página web está carregada ou em processo de carregamento(Status Bar).
Barra de menus(Menu Bar).
Barra de ferramentas(ToolBar).
Uma "barra pessoal" que pode conter, por exemplo, favoritos(Personal Bar).
Barras de rolagem que mostram a posição horizontal e vertical(Horizontal/Vertical ScrollBar).
O objeto window
: contém um objeto que indica se a barra de endereços está sendo exibida ou não.locationbar
: indica se a barra de menu está sendo exibida ou não.menubar
: indica se a barra pessoal (por exemplo, a barra de favoritos) está sendo exibida ou não.personalbar
: indica se as barras de rolagem estão sendo exibidas ou não.scrollbars
: indica se a barra de status está sendo exibida ou não.statusbar
: indica se a barra de ferramentas está sendo exibida ou não.toolbar
Por exemplo, vamos verificar se a barra pessoal está sendo exibida:
console.log(window.personalbar); // BarProp {visible: true} ou BarProp {visible: false}
A propriedade retornará um objeto BarProp
O Objeto screen
O objeto screen
: altura dos componentes fixos na parte superior do navegador.availTop
: largura dos componentes fixos na lateral esquerda do navegador.availLeft
: altura máxima disponível menos a altura das barras superior e inferior.availHeight
: largura máxima disponível menos a largura das barras laterais.availWidth
: profundidade de cor da tela.colorDepth
: altura da tela em pixels.height
: objeto que fornece informações sobre a orientação do dispositivo.orientation
: profundidade de pixel da tela.pixelDepth
: largura da tela em pixels.width
Exemplo de uso:
console.log(screen.availTop); // 25
console.log(screen.availLeft); // 0
console.log(screen.availHeight); // 695
console.log(screen.availWidth); // 1280
console.log(screen.width); // 1280
console.log(screen.height); // 800
console.log(screen.pixelDepth); // 24
console.log(screen.colorDepth); // 24