Первый фон:
В Firefox 3.6.3 в Mac OS X 10.5.8 при вводе текста в стандартную комбинацию горячих клавиш Command + LeftArrow и Command + RightArrow перемещают курсор к началу / концу текущей строки соответственно. Однако при использовании 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);
}
}
},
ложный
);
Когда установлено / включено, нажатие клавиши + стрелка влево | вправо выдает предупреждение с соответствующим кодом, но как только диалоговое окно закрывается, браузер выполняет перемещение страницы вперед / назад. Я попытался установить новый код с evt.keyCode = 0, но это не сработало.
Итак, вопрос в том, может ли этот скрипт Greasemonkey быть обновлен так, чтобы он препятствовал перемещению страниц назад / вперед?
(ПРИМЕЧАНИЕ: я открыт и для других решений. Не обязательно быть Greasemonkey, это просто направление, которое я попробовал. Настоящая цель - отключить функциональные клавиши «вперед / назад».)