2010-01-24 12 views
8

Tak więc obecnie próbuję zrobić skrypt GreaseMonkey, który pozwoli użytkownikowi nacisnąć lewą lub prawą klawiaturę i przejść do poprzedniego komiksu lub przejść do następnego paska. Obecnie mam trochę kodu, ale nie daje mi to żadnych wyników.Greasemonkey Javascript Naciśnij klawisz Pomoc

function KeyCheck() 
{ 
var KeyID = event.keyCode; 
alert(KeyID); 
} 

document.onKeyDown = KeyCheck(); 

Kod służy tylko do debugowania, aby sprawdzić, czy faktycznie jest wykonywany, ale po naciśnięciu klawisza nic nie stanie się na stronie. Testuję również w Firefoksie.

Odpowiedz

11

Po tym, jak Googlowałem przez dobre 30 minut, dowiedziałem się, że GreaseMonkey nie obsługuje onkeydown po wyjęciu z pudełka. Musiałem użyć funkcji o nazwie "addEventListener". Mój ostateczny kod zwraca klucz klucza klucza wciśnięty na stronie prawidłowo:

function KeyCheck(e) 
{ 
alert(e.keyCode); 
} 

window.addEventListener('keydown', KeyCheck, true); 
4

Nie powinieneś mieć() po KeyCheck. Twój obecny kod uruchamia KeyCheck, a następnie próbuje ustawić document.onKeyDown na zwróconą wartość. Jeśli zrobisz to bez(), to zamiast tego ustaw funkcję o nazwie KeyCheck, która będzie uruchamiana na zdarzeniu.

Sądzę, że naKeyDown powinien być cały mały - jest to document.onkeydown.

kolejny przykład, z funkcją inline:

document.onkeydown = function() { alert("key down") } 

prace podczas gdy

document.onkeydown = alert("key down"); 

nie.