Accès aux "clés multimédia" à partir d'un onglet du navigateur

Existe-t-il un moyen d'accéder aux "clés de médias" avec Javascript à partir d'un onglet / fenêtre de navigateur?

Je suis principalement intéressé par une solution google chrome.

En utilisant le code suivant, il ne semble pas y avoir d'événement généré pour les clés multimédia:

<html> <body onKeyDown="showKeyCode(event)"> <script type="text/javascript"> function showKeyCode(event) { alert(event.keyCode); } </script> </body> </html> 

Est-ce que je manque quelque chose? Pourrais-je faire mieux avec une extension Google Chrome?

Mise à jour: pour résoudre ce problème, j'ai développé les outils suivants:

  • Chrome MusicMan
  • Mediakeys Server

En ce qui concerne si vous pourriez faire mieux qu'une extension Chrome: non, vous ne pouviez pas – J'ai fait un script de contenu pour un site et l'ai exécuté dans la version stable actuelle de Chrome 16 sur OS X 10.7. Le script est assez simple:

 console.log('Content script loading'); $("body").bind("keyup",function(event){ console.log(event.keyCode); }) 

Et il montre qu'aucun événement n'est déclenché pour les touches de retour, de lecture / pause, d'avance, de muet, de volume ou de volume .

Intéressant, la clé F5 non utilisée génère un code-clé, de sorte que vous pourriez l'utiliser comme alternative si vous le souhaitez.

Voici une liste de codes clés de Microsoft; Ils comprennent des clés telles que "VK_VOLUME_MUTE". Le code de clé pour VK_VOLUME_MUTE est répertorié comme 0xAD. 0xAD est une décimale de 173.

Et bien sûr, lorsque je charge le suivant et appuyez sur le bouton muet sur mon clavier, le code de la touche signalé est 173. Ils fonctionnent comme n'importe quelle autre clé; Cependant, cela ne me surprendrait pas si les codes clés sont spécifiques à Windows. Il peut y avoir des expériences.

 <html> <body> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script> $(document).ready(function() { $(document).keydown(function(ev){ alert(ev.keyCode); }); }); </script> </body> </html>