Este artículo le brinda conocimientos relevantes sobre JavaScript. Presenta principalmente problemas relacionados con las operaciones de BOM, incluidos eventos comunes de objetos de ventana, mecanismos de ejecución de JavaScript, etc. Espero que sea útil para todos. Eventos comunes del objeto de ventana
Evento de carga de ventana:
- window.onload: evento de carga de página. Este evento se activa cuando el contenido del documento está completamente cargado (incluidas imágenes, archivos de script, archivos CSS, etc.) y se llama a la función de procesamiento.
- document.addEventListener('DOMContentLoaded', function(){}): solo cuando se completa la carga DOM, excluyendo hojas de estilo, imágenes, flash y
eventos de compatibilidad para ajustar el tamaño de la ventana:
- window.onresize: ajusta el evento de carga del tamaño de la ventana
ventana El método .open() se puede utilizar para navegar a una URL específica o para abrir una nueva ventana del navegador.
- Este método recibe 4 parámetros: la URL que se cargará, la ventana de destino, una cadena de caracteres y una representación de la nueva ventana. en el historial del navegador Si se debe representar el valor booleano de la página actualmente cargada
window.open("http://www.wrox.com/", "wroxWindow","height=400,width=400,top=10,left=10,resizable=yes");
temporizador:
- setInterval(controlador: cualquiera, tiempo de espera?: largo, argumentos…: cualquiera): bucle
- clearInterval(controlador?: largo): cancelar setInterval
- setTimeout(controlador: cualquiera, tiempo de espera?: largo , argumentos…: cualquiera):
- ClearTimeout (¿manejar?: largo): Cancelar setTimeout
window.scroll(x, y)
window.scrollTo(x, y): Ambos tienen el mismo uso para cambiar la posición horizontal y barras de desplazamiento verticales, siempre que debe haber La barra de desplazamiento está en la página
window.scrollBy(x, y): El desplazamiento acumulativo de la barra de desplazamiento, los números positivos bajan, los números negativos suben window.scrollBy(0, 10) : Cuando se llama cada 100 milisegundos, la barra de desplazamiento se mueve 10 píxeles.
ventana. getComputedStyle (elem, pseudoclase)
cuadro de diálogo
alerta - alerta ("cadena de aviso")
- muestra un cuadro de advertencia y muestra el texto de la cadena de aviso en el cuadro de advertencia
- confirmar
- confirmar ("cadena de mensaje")
- muestra un cuadro de confirmación y confirma. La cadena de mensaje se muestra en el cuadro.
- Cuando el usuario hace clic en el botón "Confirmar", devuelve verdadero y hace clic en "Cancelar" para devolver
- un mensaje de mensaje falso ("cadena de mensaje"). , "valor predeterminado")
- muestra un cuadro de entrada y muestra el carácter de solicitud en el cuadro de entrada Cadena, esperando la entrada del usuario
- Cuando el usuario hace clic en el botón "Confirmar", se devuelve la entrada del usuario Cuando se hace clic en el botón "Cancelar". , se devuelve un valor nulo
El mecanismo de ejecución de JavaScript
ejecuta el script js y coloca el código js en la pila de ejecución en un modo de ejecución sincrónico. Al ejecutar la pila de ejecución, encuentra código asincrónico JS (eventos, temporizadores, ajax, carga de recursos). , error) se coloca en las API web (cola de tareas). Cuando se completa el código en la pila de ejecución, vaya a la cola de tareas y tome la primera para su ejecución. Después de la ejecución, obtenga una de la cola de tareas y ejecútela. ejecútelo repetidamente (bucle de eventos) hasta que se complete la ejecución en la cola de tareas.
El objeto de ubicación
window.history se utiliza para obtener la dirección URL de la página actual y redirigir el navegador a una nueva página.
http://www.itcast.cn:80/index.html?name=andy&age=1#link
http: protocolo de comunicación www.itcast.cn: nombre de dominio 80: puerto index.html: ruta?nombre=andy&age=1: parámetro #fragmento de enlace: punto de anclaje,
atributo de objeto de enlace:
- href*: obtiene o establece la URL completa
- del host: devolver el nombre de host (nombre de dominio)
- nombre de host: establecer o devolver el nombre de host de la
- publicación URL actual: devolver el número de puerto
- nombre de ruta: devolver la
- búsqueda de ruta*: devolver
- hash de parámetro: devolver el fragmento (contenido después de #)
- protocolo: establecer o devolver el
método del objeto de protocolo de la URL actual:
- asignar: como href, puede saltar a la página (también llamada página de redireccionamiento)
reemplazar: reemplazar la página actual, debido a que el historial no se registra, no puede volver a la - recarga
- de la página
- : recarga la página, equivalente al
objeto del navegador
de la función de actualización
navegador: un objeto que encapsula la información de configuración del navegador
- cookieEnabled Si las cookies están activadas en el navegador actual
- cookie: el espacio de almacenamiento en el cliente y la capacidad es pequeña Los diferentes navegadores tienen diferentes tamaños y la clave se puede guardar de forma permanente
- Desventajas: en particular.
Los complementos - de información personal de easy Leak
- encapsulan toda la información del complemento instalado por el
- nombre del navegador del agente de usuario del navegador, el número de versión del kernel y otras series de caracteres
- onLine ¿Está la computadora fuera de línea? ¿Está la computadora conectada a Internet?
- platform devuelve la plataforma del sistema operativo que ejecuta el navegador
- appCodeName devuelve el nombre en código del navegador
- appName devuelve el nombre del navegador
- appVersion devuelve la plataforma y la información de versión del
objeto de historial del navegador
window.history el objeto incluye la colección del historial del navegador (url)
- parte posterior del navegador Función: History.back()
- Función de avance del navegador: History.forward()
- Ingrese una determinada página en el historial: History.go()
Objeto de pantalla
El objeto window.screen contiene información sobre el usuario
// pantalla: obtiene el tamaño de resolución del dispositivo de visualización // resolución completa: pantalla.ancho/alto
// Cómo identificar el tipo de cliente compatible con todos los anchos de cliente // Pantalla grande, pantalla mediana, pantalla pequeña, pantalla ultrapequeña // lg md sm xs
// TV pc pad teléfono
//Ancho >= 1200 >=992 >= 768 < 768
//La resolución restante después de eliminar la barra de tareas // screen.availHeight/availWidth
- Ancho de pantalla disponible: screen.availWidth
- Alto de pantalla disponible: screen.availHeight
- Alto de pantalla: screen.Height
- Ancho de pantalla: screen.Width
- El número de dígitos del color de la pantalla :
desplazamiento del elemento colorDepth La serie de desplazamiento
puede obtener dinámicamente la posición (desplazamiento), tamaño, etc. del elemento.
- Obtenga
- la distancia del elemento a la posición del elemento principal.
- Obtenga el tamaño del elemento en sí
. - El valor no tiene una unidad.
Atributos de uso común de la serie de desplazamiento:
- elemento. offsetParent: devuelve el elemento principal con la posición como elemento. Si el elemento principal no está posicionado, se devuelve el cuerpo
- . del elemento encima del elemento principal posicionado.
- element.offsetLeft*: Devuelve la banda relativa del elemento. Hay un desplazamiento a la izquierda del elemento principal posicionado.
- element.offsetWidth: Devuelve el ancho de sí mismo, incluido el relleno, el borde y el contenido. , sin unidad
- element.offsetHeight: devuelve la altura de sí mismo, incluido el relleno, el borde y el contenido, sin
elemento unitario área visual client La serie
obtiene dinámicamente atributos comunes
como el tamaño del borde y el tamaño del elemento de los elementos
: - element.clientTop: el tamaño de el borde superior del elemento
- element.clientLeft: el tamaño del borde izquierdo del elemento
- element.clientWidth*: devuelve el ancho de sí mismo, incluido el relleno y el área de contenido, excluyendo el borde, sin unidad
- element.clientHeight*: devuelve la altura de Incluye el relleno y el área de contenido, excluyendo los bordes, sin
desplazamiento del elemento unitario. La serie de desplazamiento
obtiene dinámicamente el tamaño y la distancia de desplazamiento de los elementos.
Atributos comunes
- element.srcollTop*: devuelve la distancia del lado superior enrollado, sin unidad
- element.srcollLeft*: devuelve el enrollado. distancia izquierda, sin
- elemento de unidad.srcollWidth: Devuelve su ancho real, sin borde, sin
- elemento de unidad.srcollHeight: Devuelve su altura real, no contiene bordes y no tiene una
barra de desplazamiento de unidad Al desplazarse, se activará el evento de desplazamiento.
para ver la distancia de desplazamiento de la barra de desplazamiento
window.pageXOffset/pageYOffset
IE8 y versiones inferiores no son compatibles con document.body/documentElement.scrollLeft/scrollTop
La compatibilidad es confusa y lleva mucho tiempo agregar dos valores, porque es imposible. Para que dos valores tengan valores al mismo tiempo . Método de compatibilidad de encapsulación, encuentre la distancia de desplazamiento de la rueda de la barra de desplazamiento getScrollOffet()
/*
Encapsula un método para obtener la distancia de desplazamiento de la barra de desplazamiento Devuelve: x: la distancia de desplazamiento de la barra de desplazamiento horizontal y: la distancia de desplazamiento de la barra de desplazamiento vertical */función getScrollOffet(){.
si(ventana.pageXOffset){
El retorno {//{} del objeto debe estar después de la palabra clave; de lo contrario, el sistema lo agregará automáticamente y el valor de retorno no estará definido;
x: ventana.páginaXOffset,
y: ventana.páginaYOffset}
}else{//Compatible con IE8 e inferiores return {
x: documento.body.scrollLeft + documento.documentElement.scrollLeft,
y : documento.body.scrollTop + documento.documentElement.scrollTop }
}}
Ver el tamaño de la
window.innerWidth/innerHeight
no es compatible con IE8 y versiones anteriores (nota: el ancho y el alto aquí no incluyen el alto de la barra de menú, barra de herramientas, barra de desplazamiento, etc.) document.documentElement.clientWidth/clientHeight
en modo estándar, cualquier navegador es compatible con document.body.clientWidth/clientHeight
Es un método de compatibilidad de encapsulación del navegador adecuado para situaciones extrañas. Devuelve el tamaño de la ventana gráfica del navegador getViewportOffset()
/*La encapsulación devuelve el valor de retorno del tamaño de la ventana gráfica del navegador. :
w: ancho de la ventana gráfica h: alto de la ventana gráfica*/función getViewportOffset(){
si(ventana.anchointerior){
devolver {
w: ventana.anchointerior,
h: ventana.alturainterior}
}else{ //Compatible con navegadores IE8 y anteriores if(document.compatMode == 'BackCompat'){
//Return { en modo de renderizado extraño
w: documento.body.clientWidth,
h: documento.cuerpo.alturadelcliente}
}demás{
// retorno del modo estándar {
w: documento.documentElement.clientWidth,
h: documento.documentElement.clientHeight }
}
}}console.log(document.compatMode); // modo extraño BackCompat // modo estándar CSS1Compat
para ver el tamaño geométrico del elemento. La nueva comprensión de ES5 de
domElement.getBoundingClientRect()
tiene buena compatibilidad y devuelve un objeto que contiene left; , Atributos como arriba, derecha e inferior. Izquierda y superior representan las coordenadas X e Y de la esquina superior izquierda del elemento. Derecha e inferior representan las coordenadas X e Y de la esquina inferior derecha del elemento. Los atributos de ancho no se implementan en versiones anteriores de IE. Los resultados devueltos no son en tiempo real. '
// Obtiene la posición del elemento en la función del documento getElementPosition(target){.
//Soporta el método BoundingClientRect() if(0 && target.getBoundingClientRect){
var pos = target.getBoundingClientRect();
return { // Cuando la barra de desplazamiento se mueve, agrega la posición x de la barra de desplazamiento: pos.left + Math.max(document.body.scrollLeft, document.documentElement.scrollLeft),
y : pos.top + Math.max(document.body.scrollTop, document.documentElement.scrollTop)
}
} demás {
varpos = {
izquierda: 0,
arriba: 0
}
var _elm = objetivo;
while(objetivo.offsetParent){
if(_elm == target){//Acumula izquierda y arriba por primera vez
pos.izquierda += objetivo.offsetLeft;
pos.top += objetivo.offsetTop;
}demás{
pos.izquierda += objetivo.offsetLeft + objetivo.clientLeft;
pos.top += target.offsetTop + target.clientTop;
}
// el objetivo reasigna el objetivo = target.offsetParent;
}
retorno {x: pos.izquierda, y: pos.arriba}
}}
Barra de estado de
propiedad
- defaultStatus cambia el estado de visualización predeterminado de la barra de estado del navegador
- cambia temporalmente la
posición de la ventana de
visualización del estado del navegador - IE
- screenLeft declara la coordenada x de la esquina superior izquierda de la ventana
- screenTop declara la coordenada y de la esquina superior izquierda de la ventana
- document.body.screenLeft
- document. documentElement.screenLeft declara el número de píxeles que el documento actual se ha desplazado hacia la derecha
- document.body.screenTop
- document.documentElement.screenTop declara el número de píxeles que el documento actual se ha desplazado hacia la derecha
- . IE
- screenX declara la coordenada x de la esquina superior izquierda de la ventana
- screenY declara la esquina superior izquierda de la ventana La coordenada y
- pageXOffset declara el número de píxeles que el documento actual se ha desplazado a la
- página derechaYOffset declara el número de píxeles que el documento actual se ha desplazado hacia la derecha
- FF
- InnerHeight devuelve la altura del área de visualización del documento de la
- ventana InnerWidth devuelve el ancho del área de visualización del documento de la ventana
- exteriorWidth devuelve el ancho exterior de la ventana
- exteriorHeight Devuelve la altura exterior de el abridor de ventana
y otros atributos
- pueden realizar la comunicación entre formularios bajo el mismo nombre de dominio. Un formulario debe contener el abridor de otro formulario
- cerrado y devuelve verdadero cuando el nombre de la ventana actual está cerrado
- o devuelve el nombre de la ventana
- propia
. - devuelve el nombre de la ventana actual.