2010-09-02 6 views
16

Gibt es eine Möglichkeit, die "Media Keys" mit Javascript von einem Browser-Tab/Fenster aus aufzurufen?Zugriff auf "Media Keys" über eine Browser-Registerkarte

Ich bin hauptsächlich an einer Google Chrome-Lösung interessiert.

Verwendung des folgenden Codes, es scheint nicht ein Ereignis für die Medien-Tasten erzeugt werden:

<html> 
<body onKeyDown="showKeyCode(event)"> 
    <script type="text/javascript"> 

     function showKeyCode(event) { 
      alert(event.keyCode); 
     } 

    </script> 
</body> 
</html> 

ich etwas fehle? Kann ich es besser mit einer Google Chrome-Erweiterung machen?

Update: dieses Problem lösen ich die folgenden Werkzeuge in Handarbeit:

+0

Meinst du die Tastaturtasten zum Ändern der Systemlautstärke, Stummschaltung usw.? (Wenn ja, würde ich hoffen und erwarten, dass JavaScript in einem Browser keinen Zugriff darauf hätte; scheint, als würde es einige ziemlich böse Exploits ermöglichen.) –

+0

@JacobM: Ja, das. Über das Exploit-Potenzial: Ich bin mir nicht sicher, worum es hier geht. Ich spreche über das Abfangen des "Keydown" -Ereignisses wie bei jedem anderen Schlüssel. Was ist dein Anliegen? – jldupont

+0

Oh, ich dachte, Sie wollten diese Funktionen aus Javascript heraus auslösen. "Keydown" abzufangen scheint kein Problem zu sein. –

Antwort

4

In Bezug auf, ob Sie besser als ein Chrome Extension tun konnte: nein konnte man nicht - ich habe ein Content-Skript für eine Website gemacht, und es in der aktuellen stabilen Version von Chrome 16 auf OS X 10.7 läuft. Das Skript ist einfach genug:

console.log('Content script loading'); 

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

Und es zeigt, dass keine Ereignisse für den Rücken, Play/Pause ausgelöst werden, nach vorne, Mute, Lautstärke oder Lautstärke Tasten.

Interessant, die unbenutzte F5-Taste geht einen Schlüsselcode generieren, so dass Sie es möglicherweise als Alternative verwenden können, wenn Sie möchten.

+0

Siehe mein "update" zur obigen Frage. – jldupont

+1

@jldupont Interessant: Installieren einer nativen App, um die Tastatureingaben abzufangen und diese für die Kommunikation mit einem Server für die Erweiterung zu verwenden.Die F5-Option ist für den Endanwender offensichtlich nicht so ordentlich wie die richtige Wiedergabe/Pause, aber es ist weniger Arbeit für den Entwickler zu implementieren. Hoffentlich geben sie uns eines Tages den richtigen Zugang! – mikemaccana

6

hier ein list of key codes von Microsoft; Sie enthalten Schlüssel wie "VK_VOLUME_MUTE". Der Schlüsselcode für VK_VOLUME_MUTE wird als 0xAD aufgelistet. 0xAD ist dezimal 173.

Und sicher genug, wenn ich die folgenden laden und die Mute-Taste auf meiner Tastatur drücken, ist der Schlüsselcode gemeldet 173. So funktionieren sie wie jeder andere Schlüssel; Es würde mich jedoch nicht überraschen, wenn die Tastencodes Windows-spezifisch sind. Es kann etwas experimentieren.

<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> 
+0

Ich habe kein Glück auf Chrome/Linux aber ... – jldupont

+0

Ah; Ich habe es auf Chrome/Windows versucht. Ja, wie ich schon sagte, es ist wahrscheinlich OS-spezifisch. Erhalten Sie kein Keydown Event unter Linux oder erhalten Sie einen anderen Keycode? –

+1

kein Ereignis überhaupt. – jldupont

Verwandte Themen