Las ventanas emergentes de JavaScript de Chrome que manejan los cambios

Google implementado un cambio en el comportamiento de manejo de ventanas emergentes de JavaScript de Chrome recientemente que restringe las ventanas emergentes de JavaScript.

El cambio, que ya aterrizó en Chrome Canary y Dev, mejora el manejo de los diálogos de alerta (), confirmación () y aviso () de JavaScript que las páginas pueden lanzar en el navegador.



Chrome hasta ahora, y eso sigue siendo cierto para Chrome Stable y Beta, manejaba estos cuadros de diálogo de JavaScript por ventana del navegador.

Esto significa que las ventanas emergentes pueden bloquear el navegador hasta que los usuarios reaccionen a la ventana emergente en cuestión. Si bien eso puede ser útil en ciertas situaciones, a menudo significaba que los sitios usaban estas opciones para bloquear el navegador y obligar a los usuarios a interactuar con la ventana emergente.

Esto iba desde sitios de bromas que lo colocaban en un bucle interminable de ventanas emergentes hasta sitios de ataque que pedían a los usuarios que pagaran para eliminar la ventana emergente y devolver el navegador a su estado predeterminado.

Las ventanas emergentes de JavaScript de Chrome que manejan los cambios

google alert

Google tomó la decisión de hacer que estos cuadros de diálogo de JavaScript funcionen por pestaña en el navegador y no por 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.



Hacerlo descarta la ventana emergente de inmediato. Los usuarios ya no tienen que interactuar con la ventana emergente directamente, o incluso forzar la finalización del proceso de Chrome para recuperar el control sobre el navegador web.

La compañia notas en el documento oficial de diseño:

Si una pestaña es la pestaña principal, presentaremos el cuadro de diálogo de la pestaña. Los cuadros de diálogo de alerta / confirmación / solicitud se mostrarían y enfocarían para las interacciones del usuario. Si el usuario interactúa con ellos y realiza la interacción del 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, moviéndola al fondo y sin hacerla principal, descartaríamos el diálogo. Para los cuadros de diálogo de alerta, JavaScript no está esperando una respuesta, por lo que volveríamos a JavaScript. Para los cuadros de diálogo de confirmación y solicitud, devolveríamos falso y nulo respectivamente, lo que indica una cancelación. (Tenga en cuenta que estos son los mismos valores que devolvemos actualmente para los cuadros de diálogo que están suprimidos por la configuración 'Evitar que esta página cree cuadros de diálogo adicionales').

Para todas las demás pestañas, neutralizaríamos la mayoría de los diálogos. Para los cuadros de diálogo de alerta, lo agregaríamos a una cola para esa pestaña y mostraremos la cola de cuadros de diálogo la próxima vez que la pestaña esté en primer plano, pero permitiríamos inmediatamente que se reanude el JavaScript de esa pestaña. Para los cuadros de diálogo de confirmación y solicitud, devolveríamos inmediatamente falso / nulo para evitar que JavaScript se bloquee, ya que bloquear la ejecución del script rompería pestañas arbitrarias, muy posiblemente con 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 cuadros de diálogo de JavaScript. La compañía sugiere que los sitios implementen alternativas, por ejemplo, utilizando la API de notificaciones.

¿Significa esto que Google cambiará el uso de alert () de Google Calendar para las notificaciones? Sólo el tiempo dirá.

Si observa otros navegadores, notará que han implementado la funcionalidad hace años. Tanto Firefox como Opera han implementado esta opción durante años.

Ahora lee: Extensión del bloqueador de ventanas emergentes para Google Chrome