Una de las formas que tienen las páginas web de mandarnos alertas y comunicarnos con nosotros a través de los navegadores como Google Chrome es a través de las notificaciones o alertas JavaScript, una pequeña ventana de advertencia que nos informa de algo, generalmente relacionado con la página (un error, un aviso, un consejo, etc). Aunque esto suele ser útil, también es bastante peligroso, y más que lo va a ser con el nuevo cambio que ha implementado Google a su navegador.
El uso de estos diálogos suele causar muchos problemas para los usuarios debido a que cuando aparece uno, el motor JavaScript se debe detener hasta que el usuario acepta y cierra dicha ventana. Esto es peligroso ya que, si una pestaña ha mostrado uno de estos cuadros y estamos navegando por otra página, el contenido JS no se podrá procesar, y veremos errores en la web.
Para evitar que esto siga ocurriendo, Google quiere cambiar el comportamiento de estos diálogos. Desde la creación de estas ventanas de diálogo en 1995 hasta ahora, se utilizaban principalmente 3 métodos: alert(), confirm() y prompt(). Ahora, cuando aparecía uno de ellos, generalmente solo tomaba el control de la pestaña que lo había generado, pudiendo seguir navegando por otras pestañas aunque otra haya activado una de estas notificaciones. Sin embargo, a partir de ahora, la función «onbeforeunload» queda depreciada, haciendo que cada vez que se llama a una de estas alertas, esta tome el control completo del navegador, consiguiendo incluso foco y mostrando la pestaña que ha generado dicho aviso (y sin posibilidad de cambiar de pestaña hasta que la confirmemos), haciendo que el navegador quede inservible hasta que confirmemos el aviso.
Esto puede ser bastante útil en algunos casos, como, por ejemplo, para recibir ciertas notificaciones como las de Google Calendar, que nos ayudarán a que nada se nos pase por alto, sin embargo, también es bien recibido por piratas informáticos, quienes van a aprovecharse de esta nueva característica para hacer de las suyas.
Seguro que alguna vez hemos visto una página similar a la anterior en la que nos aparece un mensaje JavaScript que, aunque aceptemos, vuelve a aparecer impidiendo cerrar la pestaña. Si esta página cargara en segundo plano, por ejemplo, estas notificaciones no nos molestarían. Sin embargo, con la nueva función, la pestaña que las genera pasará a primer plano y tomará el foco del navegador, quedando este bloqueado en esta página.
Cómo podemos bloquear las alertas JavaScript en Google Chrome
Como hemos visto, ahora va a ser incluso más difícil evitar estas molestas alertas, ya que estas tomarán el control del navegador cada vez que carguen. Por suerte, existen extensiones pensadas para bloquear este tipo de ventanas emergentes y ayudarnos a reducir la molesta de la navegación, como es el caso de «Pop up blocker for Chrome«.
Por el momento, estas nuevas alertas JavaScript han llegado a las versiones Canary y Dev del navegador, aunque no deberían tardar en llegar al resto de versiones. Firefox, Opera e incluso Internet Explorer ya cuentan con esta función desde hace años, por lo que no se sabe muy bien qué le ha dado a Google por implementarla a estas alturas en su navegador.
¿Puede ser un paso hacia el final de soporte de las alertas JavaScript? Solo el tiempo lo dirá, aunque lo que sí está claro es que Google está intentando que cada vez más webs utilicen las Notificaciones API de Google Chrome al ser estas mucho más respetuosas, fáciles de configurar y, sobre todo, seguras.
El tiempo nos dirá si, finalmente, las alertas JavaScript desaparecen, acabando así, además, con un importante vector de ataque explotado por piratas informáticos.
¿Alguna vez te has encontrado con una web similar a la anterior que abuse de los mensajes JavaScript?