Resumo : neste tutorial, você aprenderá sobre o window
objeto JavaScript que é o objeto global do JavaScript no navegador e expõe a funcionalidade do navegador.
O window
objeto é global
O objeto global do JavaScript no navegador da web é o window
objeto. Isso significa que todas as variáveis e funções declaradas globalmente com a var
palavra-chave tornam-se propriedades e métodos do window
objeto. Por exemplo:
var counter = 1;
var showCounter = () => console.log(counter);
console.log(window.counter);
window.showCounter();
Linguagem de código: JavaScript ( javascript )
Saída:
1
counter 1
Como a counter
variável e a showCounter()
função são declaradas globalmente com a var
palavra-chave, elas são automaticamente adicionadas ao window
objeto.
Se não quiser poluir o window
objeto, você pode usar a let
palavra-chave para declarar variáveis e funções.
O window
objeto expõe a funcionalidade do navegador
O window
objeto expõe a funcionalidade do navegador da web para a página da web.
1) Tamanho da janela
O window
objeto possui quatro propriedades relacionadas ao tamanho da janela:
- As propriedades
innerWidth
einnerHeight
retornam o tamanho da janela de visualização da página dentro da janela do navegador (sem incluir as bordas e barras de ferramentas). - As propriedades
outerWidth
eouterHeight
retornam o tamanho da própria janela do navegador.
Além disso, as propriedades document.documentElement.clientWidth
e document.documentElement.clientHeight
indicam a largura e a altura da janela de visualização da página.
Para obter o tamanho da janela, você usa o seguinte trecho:
const width = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
const height = window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;
Linguagem de código: JavaScript ( javascript )
2) Abra uma nova janela
Para abrir uma nova janela ou guia, você usa o window.open()
método:
window.open(url, windowName, [windowFeatures]);
Linguagem de código: CSS ( css )
O window.open()
método aceita três argumentos: a URL a ser carregada, o destino da janela e uma sequência de recursos da janela.
O terceiro argumento é uma sequência de configurações delimitada por comando que especifica a exibição de informações para a nova janela, como largura, altura, barra de menu e redimensionável.
O window.open()
método retorna um WindowProxy
objeto, que é um invólucro fino do window
objeto. Caso a nova janela não possa ser aberta, ela retorna null
.
Por exemplo, para abrir uma nova janela que carrega a página about.html
no localhost, use o seguinte código:
let url = 'http://localhost/js/about.html';
let jsWindow = window.open(url,'about');
Linguagem de código: JavaScript ( javascript )
O código abre a página about.html
em uma nova guia. Se você especificar o height
e width
da janela, o URL será aberto em uma nova janela separada em vez de em uma nova guia:
let features = 'height=600,width=800',
url = 'http://localhost/js/about.html';
let jsWindow = window.open(url, 'about', features);
Linguagem de código: JavaScript ( javascript )
Para carregar outra URL em uma janela existente, você passa um nome de janela existente para o window.open()
método. O exemplo a seguir carrega a contact.html
página da web na contact
janela:
window.open('http://localhost/js/contact.html','about');
Linguagem de código: JavaScript ( javascript )
Junte tudo. O código a seguir abre uma nova janela que carrega a página da web about.html
e, após 3 segundos, carrega a página contact.html
na mesma janela:
let features = 'height=600,width=800',
url = 'http://localhost/js/about.html';
let jsWindow = window.open(url, 'about', features);
setTimeout(() => {
window.open('http://localhost/js/contact.html', 'about')
}, 3000);
Linguagem de código: JavaScript ( javascript )
3) Redimensionar uma janela
Para redimensionar uma janela você usa o resizeTo()
método do window
objeto:
window.resizeTo(width,height);
Linguagem de código: JavaScript ( javascript )
O exemplo a seguir abre uma nova janela que carrega a http://localhost/js/about.html
página e a redimensiona (600,300)
após 3 segundos:
let jsWindow = window.open(
'http://localhost/js/about.html',
'about',
'height=600,width=800');
setTimeout(() => {
jsWindow.resizeTo(600, 300);
}, 3000);
Linguagem de código: JavaScript ( javascript )
O window.resizeBy()
método permite redimensionar a janela atual em um valor especificado:
window.resizeBy(deltaX,deltaY);
Linguagem de código: JavaScript ( javascript )
Por exemplo:
let jsWindow = window.open(
'http://localhost/js/about.html',
'about',
'height=600,width=600');
// shrink the window, or resize the window
// to 500x500
setTimeout(() => {
jsWindow.resizeBy(-100, -100);
}, 3000);
Linguagem de código: JavaScript ( javascript )
4) Mova uma janela
Para mover uma janela para uma coordenada especificada, você usa o moveTo()
método:
window.moveTo(x, y);
Linguagem de código: JavaScript ( javascript )
Neste método, x
e y
são coordenadas horizontais e verticais para as quais serão movidas. O exemplo a seguir abre uma nova janela e a move para (0,0)
coordenar após 3 segundos:
let jsWindow = window.open(
'http://localhost/js/about.html',
'about',
'height=600,width=600');
setTimeout(() => {
jsWindow.moveTo(500, 500);
}, 3000);
Linguagem de código: JavaScript ( javascript )
Da mesma forma, você pode mover a janela atual por um valor especificado:
let jsWindow = window.open(
'http://localhost/js/about.html',
'about',
'height=600,width=600');
setTimeout(() => {
jsWindow.moveBy(100, -100);
}, 3000);
Linguagem de código: JavaScript ( javascript )
5) Feche uma janela
Para fechar uma janela, você usa o window.open()
método:
window.open()
Linguagem de código: JavaScript ( javascript )
O exemplo a seguir abre uma nova janela e a fecha após 3 segundos:
let jsWindow = window.open(
'http://localhost/js/about.html',
'about',
'height=600,width=600');
setTimeout(() => {
jsWindow.close();
}, 3000);
Linguagem de código: JavaScript ( javascript )
6) A window.opener
propriedade
Uma janela recém-criada pode fazer referência à janela que a abriu por meio da window.opener
propriedade. Isso permite a troca de dados entre as duas janelas.
Resumo
- O
window
é o objeto global no navegador da web. - O
window
objeto expõe a funcionalidade do navegador da web. - O objeto window fornece métodos para manipular uma janela como
open()
,resize()
,resizeBy()
,moveTo()
,moveBy()
eclose()
.