Voglio scrivere una pagina web per il quiz online. Il requisito di base che ho è che, se la persona che accetta il quiz cambia scheda o apre una nuova finestra anche senza minimizzare il browser, cioè se la persona prova a vedere la risposta da qualche altra finestra/scheda, il quiz dovrebbe fermarsi. Come posso farlo?
P.S: non dovrebbe essere una funzionalità HTML5 molto nuova. Voglio che sia supportata da tutti i principali browser al momento.Javascript per rilevare se l'utente cambia scheda
risposta
è possibile determinare se una scheda o una finestra è attiva collegando un listener di eventi sfocatura/messa a fuoco a finestra.
in jQuery sarebbe
$(window).focus(function() {
//do something
});
$(window).blur(function() {
//do something
});
citato da questo SO rispondere: https://stackoverflow.com/a/1760268/680578
Sparerebbe anche solo per perdere il focus sulla finestra, ma la finestra è ancora visibile. – Matt
Sarà in grado di rilevare se l'utente avvia nuova finestra/browser senza ridurre al minimo la finestra del quiz? – Maxsteel
Se si verifica un nuovo popup, ci sarà una perdita di attenzione per la finestra corrente, non ci sarebbe? – Kristian
Se si stanno indirizzando i browser che lo supportano, è possibile utilizzare l'API di visibilità delle pagine disponibile in HTML5. Non rileva direttamente le modifiche alle schede, per dire, ma cambia la visibilità. Che includerebbe (ma non limitato a) le modifiche alle schede.
Vedi https://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_API
Questa è una comoda API, tuttavia è importante notare che in questo momento (6 marzo 2015) ci sono alcune limitazioni: 'Alt' +' Tab' (ad esempio l'accensione di qualsiasi tipo di app) non si registra su Windows per Firefox/Chrome/IE10. Cambiare scheda all'interno di ciascun browser funziona comunque bene. Su iOS anche se il cambio di app o il blocco del dispositivo ** non fa scattare un cambiamento di visibilità. – scunliffe
funzione migliore mani nativi verso il basso, senza jQuery.
document.hasFocus
Controllare la penna, controllare ciò che succede quando si va al link e tornare alla scheda codepen.
Sembra funzionare per me in Opera, FireFox, Safari e Chrome. Non ho provato in altri. – Umair
- 1. Come rilevare se la scheda di Chrome si è bloccata
- 2. Come rilevare se il dispositivo possiede una scheda SD?
- 3. Cambia altezza della scheda pagerTabStripIndicatore
- 4. È possibile rilevare se un utente ha aperto un collegamento in una nuova scheda?
- 5. cambia la scheda predefinita in snipMate
- 6. Cambia la larghezza della scheda GUI VIM
- 7. Javascript aperta una nuova scheda, e attendere che per chiudere
- 8. Come rilevare se i file javascript sono caricati?
- 9. È possibile rilevare JavaScript se il browser dell'utente supporta gzip?
- 10. Javascript: Come rilevare se una parola è evidenziata
- 11. Come rilevare se il cavo HDMI è collegato alla scheda PCMCIA/nessun segnale?
- 12. Come rilevare quando l'utente cambia tastiera?
- 13. Come rilevare quando una variabile cambia valore
- 14. Caratteristica rilevare apertura in una nuova finestra/scheda (target = _blank) con JavaScript
- 15. Javascript cambia codice Div
- 16. android rilevare se notte
- 17. javascript window.location nella nuova scheda
- 18. Come rilevare se l'utente ha aperto più di una finestra o scheda nella stessa sessione?
- 19. Come posso rilevare se una scheda di rete non è connessa a Java senza ritardo?
- 20. Come posso rilevare se il browser ha riscontrato un errore JavaScript ... in JavaScript?
- 21. Come posso rilevare se la barra di scorrimento di JScrollPane cambia visibilità?
- 22. Rilevare se una NSString contiene ...?
- 23. Cambia scheda corrente da notifica nell'estensione Google Chrome
- 24. Cambia dimensione immagine con JavaScript
- 25. Frammento ricreato quando si cambia scheda con ViewPager
- 26. javascript css controlla se overflow
- 27. JavaScript per rilevare se il frame principale è della stessa origine?
- 28. Qualche meccanismo standard per rilevare se un JavaScript è in esecuzione come WebWorker?
- 29. C'è un modo per rilevare se un file javascript esterno è completamente caricato?
- 30. il modo più semplice per rilevare se il dispositivo mobile con javascript
Beh certamente cambiare in scheda può essere rilevato utilizzando Javascript per quanto ne know.What volevo sapere è se il cambiamento di orientamento della finestra come aprire un nuovo browser può essere rilevato! – Maxsteel
Non verrà rilevato se si verifica in un'altra finestra del browser. –