Сначала фон:Отменить страницы вперед/назад горячие клавиши в Firefox с Greasemonkey
В 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, это только то направление, которое я пробовал. Настоящая цель - отключить функциональные клавиши «прямая/прямая».)
Я пробовал несколько раз, но по какой-то причине весь фрагмент кода выше не останется в выделенной области кода. Если вы скопируете это, убедитесь, что вы получили последний «}, false); часть. –