Сначала фон:
В Firefox 3.6.3 на Mac OS X 10.5.8 при вводе текста в стандартном режиме комбинация горячих клавиш Command+Стрелка влево и Command+Стрелка вправо перемещает курсор в начало/конец текущей строки соответственно. Однако при использовании CKEditor, FCKEditor и YUI Editor Firefox, похоже, не полностью распознает, что это текстовая область. Вместо этого он возвращается к функции по умолчанию для тех горячих клавиш, которые предназначены для перемещения назад/вперед в истории браузера. После этого текст в редакторе также очищается, когда вы возвращаетесь на страницу, что позволяет очень легко потерять все, над чем вы работаете.
Я пытаюсь написать скрипт Greasemonkey, который я могу использовать для захвата событий и предотвращения выполнения переходов на страницу вперед/назад. До сих пор я мог видеть события со следующим, используемым в качестве сценария .user.js в GreaseMonkey:
document.addEventListener('keypress', function (evt) {
// grab the meta key
var isCmd = evt.metaKey;
// check to see if it is pressed
if(isCmd)
{
// if so, grab the key code;
var kCode = evt.keyCode;
if(kCode == 37 || kCode == 39)
{
alert(kCode);
}
}
}, ложный );
Когда он установлен/включен, нажатие клавиши command+стрелка влево|вправо вызывает предупреждение с соответствующим кодом, но как только диалоговое окно закрывается, браузер выполняет перемещение страницы вперед/назад. Я попытался установить новый код с evt.keyCode = 0, но это не сработало.
Итак, вопрос в том, можно ли обновить этот скрипт Greasemonkey, чтобы он предотвращал перемещение страниц назад/вперед?
(ПРИМЕЧАНИЕ: я также открыт для других решений. Это не обязательно должен быть Greasemonkey, это просто направление, которое я пробовал. Настоящая цель — отключить функцию горячих клавиш вперед/назад.)