Greasemonkey Javascript Key Нажмите Помощь - PullRequest
8 голосов
/ 25 января 2010

Итак, в настоящее время я пытаюсь создать скрипт GreaseMonkey, который позволит пользователю нажимать влево или вправо на клавиатуре и переходить к предыдущему комиксу или к следующему. В настоящее время у меня есть некоторый код, но он не дает мне никаких результатов.

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

document.onKeyDown = KeyCheck();

Код предназначен только для отладки, чтобы увидеть, действительно ли он выполняется, но когда я нажимаю клавишу, на странице ничего не происходит. Я также тестирую в Firefox.

Ответы [ 2 ]

11 голосов
/ 25 января 2010

Итак, после 30 минут поиска в Google, я обнаружил, что GreaseMonkey не поддерживает onkeydown из коробки. Мне пришлось использовать функцию под названием «addEventListener». Мой окончательный код возвращает keyCode клавиши, нажатой на сайте правильно:

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

window.addEventListener('keydown', KeyCheck, true);
4 голосов
/ 25 января 2010

Вы не должны иметь () после KeyCheck . Ваш текущий код запускает KeyCheck, а затем пытается установить document.onKeyDown на возвращаемое значение. Если вы делаете это без (), он должен вместо этого установить функцию KeyCheck, которая будет запускаться на событии.

Кроме того, я думаю, что onKeyDown должен быть полностью строчным - это document.onkeydown .

Еще один пример со встроенной функцией:

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

работает, тогда как

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

нет.

...