Es una tarea muy común abrir una ventana emergente en el navegador para mostrar alguna información extra al usuario o, en mi caso, es abrir una versión para imprimir de la página. Sin embargo, hay que tener cuidado a la hora de implementar dicha función, ya que si se hace de forma incorrecta, el navegador puede bloquear la ventana emergente.
Todos los navegadores soportan window.open() para mostrar ventanas emergentes, pero hay algunas reglas al respecto. La ventana debe abrirse como resultado de una acción del usuario, por ejemplo, el clic en un botón. Aún así, si añades una llamada ajax dentro del evento de clic del botón e intentas abrir la ventana emergente dentro del callback, ya no se considera como una acción del usuario, y dicha ventana emergente se bloqueará. Por ejemplo, el siguiente código abre una nueva ventana como resultado de una llamada ajax y el usuario verá un mensaje de “Ventana emergente bloqueada
Como ves, lo primero que tienes que hacer es abrir una nueva ventana y guardar su ID, para que más tarde, después de la llamada ajax, puedas actualizar el contenido de la ventana emergente a lo que te haya devuelto el servidor.
3. En el menú emergente, haga clic en el menú desplegable junto a Ventanas emergentes y redirecciones, y cambie de Bloquear a Permitir. También puedes hacerlo haciendo clic en Configuración del sitio y desplazándote hacia abajo hasta Ventanas emergentes y redirecciones.
6. 6. En la parte superior de la página Ventanas emergentes y redirecciones, haga clic en el interruptor para cambiarlo de Bloqueado a Permitido, lo que hará que el interruptor pase de gris a azul. En esta página, también puedes elegir sitios específicos para bloquear o permitir las ventanas emergentes – haz clic en Añadir en la sección Permitir o en la sección Bloquear y pega una URL en la ventana emergente.
Como buena práctica creo que es una buena idea probar si una ventana emergente fue bloqueada y tomar una acción en caso de que así sea. Debes saber que window.open tiene un valor de retorno, y ese valor puede ser nulo si la acción falló. Por ejemplo, en el siguiente código:
La implementación del cliente de OAuth 2.0 utiliza una ventana emergente para pedir al usuario que se registre y apruebe la aplicación. La primera llamada a gapi.auth.authorize puede activar los bloqueadores de ventanas emergentes, ya que abre la ventana emergente indirectamente. Para evitar que el bloqueador de ventanas emergentes se active en las llamadas a auth, llame a gapi.auth.init(callback) cuando se cargue el cliente. El callback suministrado se ejecutará cuando la biblioteca esté lista para hacer llamadas de autenticación.
Supongo que está relacionado con la respuesta real de arriba en la forma en que explica que si hay una respuesta inmediata, no se disparará la alarma emergente. El “gapi.auth.init” está haciendo que la api ocurra inmediatamente.
Hice un microservicio de autenticación de código abierto usando node passport en npm y los diversos paquetes de passport para cada proveedor. Utilicé un enfoque de redirección estándar a la tercera parte dándole una URL de redirección para volver. Esto fue programático para que pudiera tener diferentes lugares para redirigir de nuevo a si el inicio de sesión / registro y en las páginas particulares.
Algunas ventanas emergentes pueden suponer una amenaza potencial para tu PC, mientras que otras son completamente inofensivas e incluso útiles. Siempre que quieras recibir notificaciones de tu sitio web favorito o acceder a páginas web importantes, los bloqueadores de ventanas emergentes pueden ser un inconveniente. Pero, ¿cómo puedes habilitar las ventanas emergentes en los sitios en los que confías y deshabilitarlas en otros sitios?
Paso 3: Para habilitar las ventanas emergentes en un sitio web específico, haz clic en el menú desplegable junto al nombre del sitio web y haz clic en Permitir. Si quieres permitir las ventanas emergentes en todos los sitios web, selecciona Permitir en el menú desplegable junto a Al visitar otros sitios web, situado en la parte inferior.
Paso 4: Por último, cuando Safari bloquea activamente una ventana emergente, aparece una pequeña notificación en la barra de direcciones del navegador para informarle de que ha ocurrido. Si necesitas esta ventana emergente para activar una función, puedes recuperarla rápidamente. Sólo tienes que hacer clic en la notificación y Safari te dará una opción para ver la ventana emergente.
Activar las ventanas emergentes en FirefoxFirefox también es una opción de navegador muy común para los usuarios de Mac, incluso más desde su renovación Quantum. Si usas Firefox, echa un vistazo a cómo puedes habilitar las ventanas emergentes en el popular navegador de Mozilla: