Browser Object Model
El Browser Object Model o BOM, es una colección de objetos globales con diversas funcionalidades para interactuar con las posibilidades que nos ofrece el navegador desde nuestro código JavaScript. Esto incluye cosas como el manejo de la ventana del navegador, el histórico de páginas de la pestaña actual, la url actual, el almacenamiento local, la geolocalización, y una serie de APIs nuevas que han ido apareciendo como las notificaciones Push, programación multihilo con Webworkers, o el acceso a la cámara del dispositivo, entre otras.
El objeto Window
Interval y Timeout
Hay dos tipos de timers que podemos crear en JavaScript para ejecutar algún trozo de código en el futuro (especificado en milisegundos), timeout e interval. El primero se ejecuta sólo una vez (debemos volver a crearlo manualmente si queremos que se repita más veces), y el segundo se repite cada X milisegundos sin parar (o hasta que sea cancelado).
timeout(función, milisegundos) → Ejecuta una función pasados un número de milisegundos.
cleartimeout(timeoutId) → Cancela un timeout (antes de ser llamado)
setInterval(funcion, milisegundo) → La diferencia con timeout es que cuando el tiempo acaba y se ejecuta la función, se resetea y se repite cada X milisegundos automáticamente hasta que lo cancelemos.
clearInterval(idIntervalo) → Cancela un interval (no se repetirá más).
setInterval/setTimeOut(nombreFuncion, milisegundos, argumentos…) → Podemos pasarle un nombre función existente. Además, si se requieren parámetros, podemos establecer sus valores tras los milisegundos.
El objeto location
El objeto location contiene información sobre la url actual del navegador. Podemos acceder y modificar dicha url a partir de dicho objeto.
El objeto history
Para navegar a través de las páginas que hemos visitado en la pestaña actual, podemos usar el objeto El objeto history. Este objeto tiene métodos bastante útiles
Cuadros de diálogo
En cada navegador, tenemos un conjunto de cuadros de diálogo para interactuar con el usuario. Sin embargo, estos no son personalizables y por tanto cada navegador implementa el suyo a su manera y con un estilo propio. Por ello no es recomendable usarlos en una aplicación en producción (uniformidad). En cambio, son una buena opción para hacer pruebas (en producción deberíamos usar cuadros de diálogo construidos con HTML y CSS).
Alert
El diálogo alert, muestra un mensaje (con un botón de Aceptar) dentro de una ventana. Bloquea la ejecución de la aplicación hasta que se cierra.
Confirm
El diálogo confirm es similar, pero te devuelve un booleano. Tiene dos botones (Cancelar → false, Aceptar → true). El usuario elegirá entre una de esas dos opciones.
Prompt
El diálogo prompt muestra un input después del mensaje. Lo podemos usar para que el usuario introduzca algún valor, devolviendo un string con el valor introducido. Si el usuario pulsa el botón de Cancelar o cierra el diálogo devolverá null. Se puede establecer un valor por defecto (segundo parámetro).