Recientemente Google implementó un cambio en el comportamiento de manejo de los popups de JavaScript de Chrome que restringe los popups de JavaScript.
El cambio, que ya aterrizó en Chrome Canary y Dev, mejora el manejo de los diálogos de JavaScript alert(), confirm() y prompt() que las páginas pueden lanzar en el navegador.
Chrome hasta ahora, y eso sigue siendo cierto para Chrome Stable y Beta, manejaba estos diálogos de JavaScript por ventana del navegador.
Esto significa que los popups podrían bloquear el navegador hasta que los usuarios reaccionaran al popup en cuestión. Si bien esto puede ser útil en ciertas situaciones, a menudo significaba que los sitios utilizaban estas opciones para bloquear el navegador y obligar a los usuarios a interactuar con el popup.
Esto iba desde sitios de broma que te ponen en un bucle sin fin de ventanas emergentes hasta sitios de ataque que piden a los usuarios que paguen para eliminar la ventana emergente y devolver el navegador a su estado predeterminado.
Los popups de JavaScript de Chrome manejan los cambios

Google tomó la decisión de hacer que estos diálogos de JavaScript funcionaran en cada pestaña del navegador, y ya no en cada ventana. Lo que esto significa para los usuarios es que ahora es posible descartar cualquier ventana emergente lanzada por estas funciones de JavaScript simplemente cambiando de pestaña.
Al hacerlo, se descarta el popup de inmediato. Los usuarios ya no tienen que interactuar con el popup directamente, o incluso forzar a matar el proceso de Chrome para recuperar el control sobre el navegador web.
Las notas de la compañía en el documento oficial de diseño:
Los diálogos de alerta/confirmación/problema se mostrarían y se centrarían en las interacciones del usuario. Si el usuario interactúa con ellos y realiza la interacción con el usuario para la que están diseñados, entonces no pasaría nada notable.
Sin embargo, si el usuario cambiara a una pestaña diferente, moviendo la pestaña a un segundo plano y haciendo que no sea la principal, descartaríamos el diálogo. Para los diálogos de alerta, el JavaScript no espera una respuesta, así que volveríamos al JavaScript. Para diálogos de confirmación y alerta, devolveríamos falso y nulo respectivamente, indicando una cancelación. (Observe que estos son los mismos valores que actualmente devolvemos para los diálogos que son suprimidos por el ajuste “Evitar que esta página cree diálogos adicionales”).
Para todas las demás pestañas, neutralizaríamos la mayoría de los diálogos. Para los diálogos de alerta, los añadiríamos a una cola para esa pestaña, y mostraríamos la cola de diálogos la próxima vez que la pestaña esté en primer plano, pero permitiríamos inmediatamente que el JavaScript de esa pestaña se reanude. Para los diálogos de confirmación y alerta, devolveríamos inmediatamente falso/nulo para evitar que el JavaScript se bloquee, ya que al bloquear la ejecución del script se rompería la pestaña arbitraria, muy posiblemente la que el usuario está interactuando.
El cambio debería poner fin a que los webmasters utilicen estas funciones de JavaScript para molestar o atacar a los usuarios del navegador Chrome.
Google señala que el cambio afectará a todos los sitios que utilizan estos diálogos de JavaScript. La compañía sugiere que los sitios implementen alternativas, por ejemplo, utilizando la API de notificaciones en su lugar.
¿Significa esto que Google cambiará el uso de Google Calendar de alerta() para las notificaciones? Sólo el tiempo lo dirá.
Si miras otros navegadores, notarás que han implementado la funcionalidad hace años. Tanto Firefox como Opera han tenido esta opción implementada durante años.
Ahora lee : Extensión del bloqueador de popups para Google Chrome












