Po kliknięciu łącza w Google Chrome zdarzenie fokusu nie uruchamia się. Wszystkie inne przeglądarki uruchamiają zdarzenie focus dla linków.Google Chrome Błąd linku JavaScript
<a href=# onfocus="console.log('focus')">Link</a>
Nie chcę dołączać do wydarzenia w trybie onmousedown, ale w trybie onfocus.
Każdy ma pomysł na obejście tego problemu.
EDIT:
zdecydowanie rozważyć to błąd, ponieważ wszystkie inne elementy aktywowana wywołać nacisk na kliknięcia.
Nawet nieostające do ogniskowania elementy z ogniskiem spustowym o wartości tabindex
dla kliknięcia w Google Chrome.
<div tabindex="-1" onfocus="console.log('focus')">div</div>
Nie mogę dołączyć do obu click
i focus
bo wtedy onclick, inne przeglądarki nazwałbym funkcję dwukrotnie. Nie mogę wykryć tej funkcjonalności, ponieważ wymaga ona interakcji użytkownika i nie będę wykonywał wykrywania ciągu agenta użytkownika, ponieważ dobrze jest źle.
Stosując tę html:
<a href=# onfocus="console.log('focus')" onmousedown="console.log('mousedown')">Link</a>
Czy oni jakiś sposób unieważnić drugi onmousedown
wezwanie, aby zapobiec funkcję o nazwie są dwa razy w niewyspecjalizowanych przeglądarek Google.
EDIT 2:
Po jakimś dalszym badaniom <input type=radio>
również nie wywołać skupienie w Google Chrome. Dlaczego na świecie jest tak google chrome, podczas gdy Opera, IE i firefox są w porządku. Szaleństwem jest to, że przeglądarka mobilnego webkita wyzwala nawet skupienie na linkach, gdy wypróbowałem go na moim urządzeniu z Androidem.
http://jsfiddle.net/82QXv/ –
Rzeczywiście, nie działa. Poza tym, gdy ogniskuję łącze za pomocą klawisza tab, fokus zdarzenia jest uruchamiany wielokrotnie. To wygląda na uszkodzone. Chrome 12.0.742.100 –
Aby sprawdzić za pomocą klawisza 'tab': http://jsfiddle.net/82QXv/1/ –