Quiero escribir una página web para la prueba en línea.El requisito básico es que, si la persona que toma la prueba cambia de pestaña o abre una nueva ventana, incluso sin minimizar el navegador, es decir, si la persona intenta ver la respuesta desde otra ventana/pestaña, la prueba debe detenerse. ¿Cómo puedo hacer eso?
P.S: no debe ser una función HTML5 muy nueva. Quiero que sea compatible con todos los principales navegadores actualmente.Javascript para detectar si el usuario cambia la pestaña
Respuesta
se puede determinar si una pestaña o ventana está activa uniendo un detector de eventos desenfoque/foco a la ventana.
en jQuery sería
$(window).focus(function() {
//do something
});
$(window).blur(function() {
//do something
});
cita de este SO responder: https://stackoverflow.com/a/1760268/680578
También se dispararía por solo perder el foco en la ventana, pero la ventana aún está visible. – Matt
¿Podrá detectar si el usuario abre una nueva ventana/navegador sin minimizar la ventana del cuestionario? – Maxsteel
Si se produce una nueva ventana emergente, habrá una pérdida de foco en la ventana actual, ¿no es así? – Kristian
Si se dirige a los navegadores que lo admiten, puede usar la API Visibilidad de página disponible en HTML5. No detecta directamente los cambios de pestaña, por decir, pero la visibilidad cambia. Que incluiría (pero no se limita a) cambios de pestaña.
Ver https://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_API
Esta es una práctica API, sin embargo, cabe señalar que en este momento (6 de marzo de 2015) hay algunas limitaciones: 'Alt' +' Tab' (por ejemplo, la aplicación de encendido de cualquier tipo) no se registra en Windows para Firefox/Chrome/IE10. Cambiar pestañas dentro de cada navegador funciona bien sin embargo. En iOS, aunque el cambio de aplicación o bloqueo de dispositivo ** activa ** un cambio de visibilidad. – scunliffe
mejores manos función nativa abajo, sin jQuery.
document.hasFocus
Revisa el bolígrafo, comprueba lo que sucede cuando vas al enlace y vuelves a la pestaña del códec.
Parece que funciona para mí en Opera, Firefox, Safari y Chrome. No he probado en otros. – Umair
- 1. ¿Puede detectar JavaScript si el navegador del usuario admite gzip?
- 2. ¿Cómo puedo detectar si el usuario está "inactivo" con javascript?
- 3. ¿Es posible detectar si un usuario ha abierto un enlace en una pestaña nueva?
- 4. Detectar si el usuario ha usado el botón Atrás
- 5. Detectar navegador o pestaña cerrando
- 6. Flex 4 detectar si el usuario presiona la tecla enter
- 7. Evento para cuando el usuario cambia las pestañas del navegador
- 8. objetivo c - Detectar cuando el usuario cambia la configuración de notificaciones de la aplicación
- 9. jQuery evento para detectar cuándo cambia la posición del elemento
- 10. AJAX - Receving la respuesta cuando el usuario cambia páginas
- 11. cómo detectar si el usuario tiene una aplicación en Cocoa
- 12. Si se cambia el contenido en CKEditor
- 13. ¿Cómo volver a cargar la actividad de la pestaña cuando la pestaña cambia?
- 14. Detectar la dirección de selección del usuario con javascript
- 15. Detectar compatibilidad para la transición con JavaScript
- 16. Detectar si la ruta del usuario tiene un directorio específico
- 17. Javascript para detectar si el menú desplegable de un elemento seleccionado es visible
- 18. ¿Cómo detectar cuándo cambia la altura de su página?
- 19. ¿Cómo puedo detectar si la barra de desplazamiento de un JScrollPane cambia la visibilidad?
- 20. javascript window.location en la nueva pestaña
- 21. Javascript - detectar si se admite el evento lister
- 22. Detectar si el salvapantallas está activo y/o el usuario ha bloqueado la pantalla en Windows
- 23. Detectar el movimiento a una nueva pestaña en Mobile Safari
- 24. ¿Cómo detectar cuando una pestaña está enfocada o no en Chrome con Javascript?
- 25. Flex: Cómo detectar si el usuario ha bloqueado el objeto compartido de la escritura
- 26. jQuery + Jeditable: detectar cuando se cambia la selección
- 27. Cómo detectar si un usuario ha cerrado sesión, en php?
- 28. ¿Cómo detectar cuándo se cambia el tema en WP7?
- 29. ¿Cómo puedo detectar si alguna de mis actividades es frontal y visible para el usuario?
- 30. Eliminar pestaña ('\ t') de la cadena javascript
Bueno sin duda cambia de pestaña se pueden detectar mediante el uso de Javascript Por lo que know.What que quería saber es si se puede detectar el cambio en el foco de la ventana como la apertura de un nuevo navegador! – Maxsteel
No detectará si sucede en otra ventana del navegador. –