Comment puis-je obtenir des événements de keydown sur une div en chrome?

Je voudrais obtenir des événements de keydown sur une div. J’utilise JQuery keydown. Assez simple.

Cependant, cela ne fonctionne pas sur le chrome. Pour que cela fonctionne sur le chrome, je dois définir tabindex = 0.

Si je le fais, Chrome met une vilaine bordure orange autour de mon div.

Y at-il un moyen de faire ce travail sur le chrome sans la frontière orange laide?

L’événement Keydown est uniquement envoyé à l’élément HTML ayant le focus. Les éléments focalisables varient selon les navigateurs, mais la plupart des navigateurs ont toujours le focus sur les éléments dont la propriété tabindex est définie.

Vous avez déjà défini tabindex pour l’élément div afin qu’il puisse être mis au point et puisse recevoir un événement de clavier. Votre problème est le contour par défaut de l’élément actuellement ciblé sur Google Chrome.

Pour modifier le contour (la “bordure orange laide” comme vous l’avez mentionné), utilisez la pseudo classe CSS: focus et le contour de la propriété CSS. L’exemple suivant supprimera le contour de tous les éléments lorsqu’ils auront le focus:

 *:focus { outline: none; } 

J’espère que cette aide.