Este artigo traz conhecimento relevante sobre JavaScript. Ele apresenta principalmente questões relacionadas às operações da BOM, incluindo eventos comuns de objetos de janela, mecanismos de execução de JavaScript, etc.
Eventos comuns do objeto de janela
Evento de carregamento de janela:
- window.onload: evento de carregamento de página Este evento é acionado quando o conteúdo do documento é completamente carregado (incluindo imagens, arquivos de script, arquivos CSS, etc.) e a função de processamento é chamada.
- document.addEventListener('DOMContentLoaded', function(){}): Somente quando o carregamento do DOM for concluído, excluindo folhas de estilo, imagens, flash e
eventos de compatibilidade para ajustar o tamanho da janela:
- window.onresize: Ajuste o evento de carregamento do tamanho da janela
window O método .open() pode ser usado para navegar até uma URL específica ou para abrir uma nova janela do navegador.
- Este método recebe 4 parâmetros: a URL a ser carregada, a janela de destino, uma string de caracteres e uma representação da nova janela. no histórico do navegador. Se deve representar o valor booleano da página atualmente carregada
window.open("http://www.wrox.com/", "wroxWindow","height=400,width=400,top=10,left=10,resizable=yes");
timer:
- setInterval(manipulador: qualquer, tempo limite?: longo, argumentos…: qualquer): loop
- clearInterval(manuseador?: longo): cancelar setInterval
- setTimeout(manipulador: qualquer, tempo limite?: longo , argumentos…: qualquer): ClearTimeout único
- (handle?: long): Cancelar setTimeout
window.scroll (x, y)
window.scrollTo (x, y): Ambos são o mesmo uso para alterar a posição da horizontal e barras de rolagem verticais, desde que haja A barra de rolagem está na página
window.scrollBy (x, y): A rolagem cumulativa da barra de rolagem, números positivos descem, números negativos sobem window.scrollBy (0, 10) : Quando chamada a cada 100 milissegundos, a barra de rolagem se move 10 pixels
window.getComputedStyle(elem, pseudo-class)
caixa de diálogo
- alerta alerta("string de prompt")
- exibe uma caixa de aviso e exibe o texto da string de prompt na caixa de aviso
- confirme
- confirme ("string de prompt")
- exibe uma caixa de confirmação e confirma A string de prompt é exibida na caixa
- Quando o usuário clica no botão "Confirmar", ele retorna verdadeiro e clica em "Cancelar" para retornar
- um prompt de prompt falso ("string de prompt" , "valor padrão")
- exibe uma caixa de entrada e exibe o caractere de prompt na string da caixa de entrada, aguardando a entrada do usuário.
- Quando o usuário clica no botão "Confirmar", a entrada do usuário é retornada quando o botão "Cancelar" é clicado. , um valor nulo é retornado.
O mecanismo de execução JavaScript
executa o script js e coloca o código js na pilha de execução em um modo de execução síncrona. Ao executar a pilha de execução, ele encontra código assíncrono JS (eventos, temporizadores, ajax, carregamento de recursos). , erro) é colocado em APIs da web (fila de tarefas). Quando o código na pilha de execução for concluído, vá para a fila de tarefas e pegue o primeiro para execução. Após a execução, obtenha um da fila de tarefas e execute-o. execute-o repetidamente (loop de eventos) até que a execução na fila de tarefas seja concluída.
O objeto de localização
window.history é usado para obter o endereço URL da página atual e redirecionar o navegador para uma nova página.

http://www.itcast.cn:80/index.html?name=andy&age=1#link
http: protocolo de comunicação www.itcast.cn: nome de domínio 80: porta index.html: caminho?name=andy&age=1: parâmetro #fragmento de link: ponto de ancoragem,
atributo de objeto de link:
- href*: obtém ou define o
- host de URL inteiro: retornar o nome do host (nome de domínio)
- hostname: definir ou retornar o nome do host da URL atual
- post: retornar o número da porta
- pathname: retornar o caminho
- search*: retornar
- hash do parâmetro: retornar o fragmento (conteúdo após #)
- protocolo: definir ou retornar o
método do objeto de protocolo da URL atual:
- atribuir: Assim como href, você pode pular para a página (também chamada de página de redirecionamento)
substituir: substituir a página atual, porque o histórico não é registrado, você não pode voltar para - recarregar
- a página
- : recarrega a página, equivalente ao
objeto navegador
da função de atualização 

navigator: um objeto que encapsula informações de configuração do navegador
- cookieEnabled Se os cookies estão ativados no navegador atual
- cookie: O espaço de armazenamento no cliente e a capacidade são pequenos Navegadores diferentes têm tamanhos diferentes e a chave pode ser salva permanentemente
- Desvantagens: Particularmente.
Os plug-ins - de informações pessoais do easy Leak
- encapsulam todas as informações do plug-in instalado pelo navegador
- nome do navegador userAgent, número da versão do kernel e outras séries de caracteres
- onLine O computador está offline O computador está conectado à Internet?
- platform retorna a plataforma do sistema operacional que executa o navegador
- appCodeName retorna o nome de código do navegador
- appName retorna o nome do navegador
- appVersion retorna as informações de plataforma e versão do
objeto de histórico do navegador
window.history objeto inclui a coleção de histórico (url) do navegador
- voltar do navegador Função: history.back()
- Função de avanço do navegador: history.forward()
- Insira uma determinada página no histórico: history.go()
objeto de tela O objeto
window.screen contém informações sobre o usuário

// tela: obtém o tamanho da resolução do dispositivo de exibição // Resolução total: screen.widht/height
// Como identificar o tipo de cliente compatível com todas as larguras de cliente // Tela grande, tela média, tela pequena, tela ultrapequena // lg md sm xs
// TV pc pad telefone
//Largura >= 1200 >=992 >= 768 < 768
//A resolução restante após a remoção da barra de tarefas // screen.availHeight/availWidth
- Largura de tela disponível: screen.availWidth
- Altura de tela disponível: screen.availHeight
- Altura da tela: screen.Height
- Largura da tela: screen.Width
- O número de dígitos da cor da tela :
deslocamento do elemento colorDepth A série de deslocamento
pode obter dinamicamente a posição (deslocamento), tamanho, etc. do elemento.
- Obtenha
- a
- distância do elemento até a posição do elemento pai.
- value não possui uma unidade.
Atributos comumente usados da série de deslocamento:
- element.offsetParent: Retorna o elemento pai com posicionamento como o elemento
- . do elemento acima do elemento pai posicionado
- element.offsetLeft*: Retorna a banda relativa do elemento. Há um deslocamento à esquerda do elemento pai posicionado
- element.offsetWidth: Retorna a largura de si mesmo, incluindo preenchimento, borda e conteúdo. , sem unidade
- element.offsetHeight: Retorna a altura de si mesmo, incluindo preenchimento, borda e conteúdo, sem
elemento de unidade área visual cliente A série
obtém dinamicamente atributos comuns,
como o tamanho da borda e o tamanho do elemento dos elementos
: - element.clientTop: o tamanho de a borda superior do elemento
- element.clientLeft: o tamanho da borda esquerda do elemento
- element.clientWidth*: retorna a largura dele mesmo incluindo preenchimento e área de conteúdo, excluindo a borda, sem unidade
- element.clientHeight*: Retorna a altura de em si, incluindo preenchimento e área de conteúdo, excluindo bordas, sem
elemento de unidade, a série de rolagem de rolagem
obtém dinamicamente o tamanho e a distância de rolagem dos elementos.
Atributos comuns
- element.srcollTop*: retorna a distância do lado superior rolado, sem unidade
- element.srcollLeft*: Retorna o rolado. distância à esquerda, sem elemento de unidade.srcollWidth
- : Retorna sua largura real, sem borda, sem elemento de unidade.srcollHeight
- : Retorna sua altura real, não contém bordas e não possui
barra de rolagem de unidade. Ao rolar, o evento onscroll será acionado.
para visualizar a distância de rolagem da barra de rolagem
window.pageXOffset/pageYOffset
IE8 e abaixo não são compatíveis com document.body/documentElement.scrollLeft/scrollTop
A compatibilidade é confusa e leva muito tempo. para que dois valores tenham valores ao mesmo tempo . Método de compatibilidade de encapsulamento, encontre a distância de rolamento da roda da barra de rolagem getScrollOffet()
/*
Encapsula um método para obter a distância de rolagem da barra de rolagem Retorna: x: a distância de rolagem da barra de rolagem horizontal y: a distância de rolagem da barra de rolagem vertical */function getScrollOffet(){
if(window.pageXOffset){
o retorno {//{} do objeto deve estar após a palavra-chave, caso contrário o sistema irá adicioná-lo automaticamente e o valor de retorno será indefinido;
x: janela.pageXOffset,
y: window.pageYOffset}
}else{//Compatível com IE8 e versões anteriores return {
x: document.body.scrollLeft + document.documentElement.scrollLeft,
y: document.body.scrollTop + document.documentElement.scrollTop }
}}
Visualize o tamanho da janela de visualização
window.innerWidth/innerHeight
não é compatível com IE8 e anteriores (nota: a largura e a altura aqui não incluem a altura da barra de menu, barra de ferramentas, barra de rolagem, etc.) document.documentElement.clientWidth/clientHeight
no modo padrão, qualquer navegador é compatível com document.body.clientWidth/clientHeight
É um método de compatibilidade de encapsulamento do navegador adequado para situações estranhas
. :
w: largura da janela de visualização h: altura da janela de visualização*/function getViewportOffset(){
if(janela.innerWidth){
retornar {
w: janela.innerWidth,
h: window.innerHeight}
}else{ //Compatível com navegadores IE8 e anteriores if(document.compatMode == 'BackCompat'){
//Retorna { no modo de renderização estranho
w: document.body.clientWidth,
h:document.body.clientHeight}
}outro{
//modo padrão return {
w: document.documentElement.clientWidth,
h:document.documentElement.clientHeight}
}
}}console.log(document.compatMode); // modo estranho BackCompat // modo padrão CSS1Compat
para visualizar o tamanho geométrico do elemento. ES5 novo entendimento de
domElement.getBoundingClientRect()
tem boa compatibilidade, que contém left; , Atributos como superior, direito e inferior representam as coordenadas X e Y do canto superior esquerdo do elemento. Direito e inferior representam as coordenadas X e Y do canto inferior direito do elemento. atributos de largura não são implementados em versões antigas do IE Os resultados retornados não são em tempo real. '
// Obtém a posição do elemento no documento function getElementPosition(target){
//Suporte ao método BoundingClientRect() if(0 && target.getBoundingClientRect){
var pos = target.getBoundingClientRect();
return { // Quando a barra de rolagem se move, adicione a posição x da barra de rolagem: pos.left + Math.max(document.body.scrollLeft, document.documentElement.scrollLeft),
y: pos.top + Math.max(document.body.scrollTop, document.documentElement.scrollTop)
}
} outro {
var pos = {
esquerda: 0,
topo: 0
}
var _elm = alvo;
enquanto(target.offsetParent){
if(_elm == target){//Acumule à esquerda e ao topo pela primeira vez
pos.esquerda += alvo.offsetLeft;
pos.top += alvo.offsetTop;
}outro{
pos.left += target.offsetLeft + target.clientLeft;
pos.top += target.offsetTop + target.clientTop;
}
// target reatribui target = target.offsetParent;
}
retornar {x: pos.esquerda, y: pos.top}
}}
Barra de status de
propriedade
- defaultStatus altera o status de exibição padrão da barra de status do navegador
- altera temporariamente a
posição da janela
de exibição do status do navegador - IE
- screenLeft declara a coordenada x do canto superior esquerdo da janela
- screenTop declara a coordenada y do canto superior esquerdo da janela
- document.body.screenLeft
- document. documentElement.screenLeft declara o número de pixels que o documento atual rolou para a direita
- document.body.screenTop
- document.documentElement.screenTop declara o número de pixels que o documento atual rolou para a direita
- ! IE
- screenX declara a coordenada x do canto superior esquerdo da janela
- screenY declara o canto superior esquerdo da janela A coordenada y
- pageXOffset declara o número de pixels que o documento atual rolou para a direita
- pageYOffset declara o número de pixels que o o documento atual rolou para a direita
- FF
- innerHeight retorna a altura da área de exibição do documento da
- janela innerWidth retorna a largura da área de exibição do documento da janela
- outerWidth retorna a largura externa da janela
- outerHeight Retorna a altura externa de o abridor de janela
e outros atributos
podem realizar a comunicação entre formulários cruzados sob o mesmo nome de domínio. Um - formulário
- deve conter o abridor de outro formulário
fechado e retornar verdadeiro quando - o nome da
- janela atual for fechado.
- retorna o nome da janela atual.