Ho scoperto che gli eventi di messa a fuoco e sfocatura javascript non vengono attivati correttamente sul browser Android, se collegati a finestra, documento o corpo.l'attivazione della finestra e gli eventi di sfocatura non funzionano correttamente sul browser Android
ho Worte un semplice script di test che sta lavorando correttamente su browser desktop, ma fallisce su Android browser magazzino, Delfino, e mobile Opera:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
<title>Focus test</title>
<script type="text/javascript">
window.onfocus = function() {
document.getElementById('console').innerHTML += '<div>Focus event handler fired.</div>';
};
window.onblur = function() {
document.getElementById('console').innerHTML += '<div>Blur event handler fired.</div>';
};
</script>
</head>
<body>
<input id="test" name="test" />
<div id="console"></div>
</body>
</html>
Intresting è, che se l'ingresso modulo è sempre messa a fuoco, il gestore di eventi si attiva e, in caso di sfocatura, il gestore eventi di sfocatura viene attivato due volte.
Qualcuno ha una buona soluzione o una soluzione alternativa per questo?
EDIT: Il risultato atteso sarebbe, che se cambio una scheda del browser, o passare a un'altra applicazione, l'evento sfocatura dovrebbe fuoco, e se torno alla scheda del browser, l'evento di messa a fuoco dovrebbe fuoco (è così che funziona sul desktop)
Hai provato jQuery? Fa un sacco di normalizzazione degli eventi in modo che siano più coerenti tra i diversi browser. – Walf
Sì, ho iniziato con jQuery, ho appena rimosso l'esempio in javascript, per escludere eventuali bug jQuery. – dioslaska
Qual è il risultato previsto del tuo esempio su un browser Android? – Uooo