Как предотвратить захват / угон клавиш с помощью веб-сайтов в Firefox? [Дубликат]


18

Некоторые веб-сайты (кажется, что в настоящее время их становится все больше) используют различные комбинации клавиш для выполнения действий, которые определяются самим веб-сайтом. В GMail есть конкретный пример/ неуместно озаглавленного вопроса; есть поле редактирования StackExchange, которое перехватывает Ctrl+ Gдля «Добавить изображение» (вместо обычного Firefox «Найти далее»); есть угон Facebook, Escчтобы скрыть оверлей, а не обычную «остановку загрузки». Я уверен, что я мог бы продолжать и продолжать с примерами, но этого должно быть достаточно, чтобы проиллюстрировать, что этот вопрос не о каком-либо конкретном веб-сайте.

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

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

Можно ли настроить Firefox для предотвращения или игнорирования таких угонов веб-сайтами и способствовать определенному поведению Firefox?

Идеальное решение, которое работает как минимум для версий 20, 21 и 22 Firefox как в Linux, так и в Windows.

Редактировать Mozilla Bugzilla Bug 380637 Должны ли веб-страницы переопределять сочетания клавиш браузера? кажется, указывает на то, что на него, по крайней мере, смотрят. Эта ошибка была первоначально представлена ​​в середине 2007 года и по-прежнему активна на середину 2013 года. Интересно, что ошибка 775002 , позволяющая пользователям отключать javascript для захвата горячих клавиш, считалась дубликатом в Firefox 15.


2
Я подозреваю, что они делают это через Javascript. В таком случае не было бы общего способа отключить его без отключения Javascript.
Даниэль Р Хикс

да, может быть api.jquery.com/keypress . Было бы интересно, если бы существовал аддон, позволяющий выборочно переписывать .js на стороне клиента. затем вы можете просто закомментировать эти вызовы, используя регулярные выражения или аналогичные
Джеймс

4
Даже если это делается через Javascript, где- то должен быть задействован слушатель нажатия клавиш, и эта функциональность обеспечивается браузером . Я не вижу причин, по которым этот код не может быть изменен так, чтобы браузер сначала интерпретировал любые нажатия клавиш (возможно, с помощью клавиш-модификаторов), и если браузер предпринимает какие-либо действия в ответ, нажатие клавиши не передается в Javascript, предоставленный веб-страница. Сделать такое поведение настраиваемым (если вы не хотите показывать его через графический интерфейс настроек, все еще есть о: config, который уже предоставляет доступ ко многим таким расширенным настройкам) должно быть довольно легко.
CVn

@ Downvoter Почему downvote?
CVn

1
@Karan Этому вопросу уже целых три года, и принятый ответ говорит о Firefox 3.6 . Хотя я не совсем согласен с нынешней схемой нумерации версий Firefox, с тех пор у нас, вероятно, более 20 выпусков, за три года разработки. Что сказать, что ответы в нем по-прежнему актуальны для текущих версий Firefox?
CVn

Ответы:


1

Вы можете использовать плагин Vimperator. Направленный на то, чтобы сделать Firefox интерфейсом только для клавиатуры, он сначала прослушивает любое нажатие клавиши и выполняет свои собственные действия. Иногда, когда вам потребуется использовать определенные угоны клавиатуры сайта, вы можете легко включить / отключить сквозной режим на некоторое время.

Давайте возьмем случай с GMail, который предлагает множество сочетаний клавиш. Но когда вы нажимаете любой такой ярлык, он обрабатывается самим Vimperator. Например, нажатие /внутри GMail обычно помещает курсор в поле поиска. Но нажатие /на странице GMail, когда Vimperator активен, запускает поиск по умолчанию (аля поиск в редакторе Vim). Тот же случай для других ярлыков GMail, как o cили даже Ctrl+Enter. Это означает, что Vimperator будет 0-м слушателем нажатий клавиш в Firefox, превосходя даже 1-го возможного слушателя, чтобы ваши сочетания клавиш были глобальными для всего браузера.

Vimperator - это, по сути, оболочка Vim поверх Firefox. Если вам удобно с Vim, Vimperator покажется вам давно потерянным другом. :-)

В любом случае, несколько сочетаний клавиш Vimperator, чтобы вы начали с:

o<link>открывает. В результате этой последовательности активируется командная строка Vimperator (внизу экрана), и команда open <link>будет размещена там, с местом для вас в середине. Нажмите, Enterчтобы загрузить страницу.

t<linkактивирует команду tabopenи открывает ссылку в новой вкладке.

gtпереключается на следующую вкладку. Ctrl+Tabа Ctrl+PgUp/Dnтакже работа.

gT переключается на предыдущие вкладки.

ZZ закрывает FF после сохранения сессии.

fпомечает все ссылки в представлении страницы выделенными цифрами. Ввод числа открывает ссылку. Все выделенные поля доступны для поиска. Таким образом, вместо ввода цифр вы можете ввести любой текст в выделенной ссылке, на которую хотите перейти.

F открывает ссылки в фоновой вкладке.

h j k lперемещаться по странице left down upиright

Vimperator предлагает множество сочетаний клавиш (и, безусловно, делает весь процесс безболезненным без мыши), и большинство сочетаний клавиш FF по умолчанию работают, как обычно. Вы можете найти ярлыки, чтобы выделить текст, скопировать их, перемещаться по странице, как если бы это был текстовый документ, увеличивать / уменьшать масштаб, имитировать наведение на ссылку и просто помещать все, что заставит Firefox реагировать на мышь.

Единственное место, где это не работает, насколько я использовал, это внутри Flash-боксов, потому что FF не может достичь того, что внутри них.

Может потребоваться немного привыкнуть, если вы не знаете о Vim или плохо знакомы с ним. Тем не менее, действительно обширная онлайн-помощь - это :h<Enter>далеко.

Вот ссылка .


видимо, vimperator больше не совместим с современными сборками firefox.
sylvainulg

-1
  • Попробуйте использовать плагин noscript для firefox, чтобы отключить некоторые JS-скрипты http://noscript.net/

1
NoScript позволяет загружать или не загружать весь Javascript из определенных доменов. Я уже пользуюсь им, и это прекрасно, но он пробовал использовать, например, Facebook или StackExchange без Javascript? Опыт находится где-то между довольно болезненным и совершенно непригодным для использования. Отключение всего Javascript для Facebook только для того, чтобы вернуть мой ключ Esc к обычному состоянию, довольно излишне.
CVn

попробуйте пометить скрипт как ненадежный. Pic: i.stack.imgur.com/45aAv.png или используйте прокси, чтобы заблокировать любой ответ от скрипта, например. Скрипач
Гомер

Если я использую NoScript, чтобы пометить, например, facebook.com как недоверенный, никакой Javascript, созданный на facebook.com, не будет выполняться. Это не то, что я хочу. Пожалуйста, перечитайте вопрос.
CVn

Получил, используя эту ссылку: addons.mozilla.org/sv-se/firefox/addon/greasemonkey и ссылку на скрипт: userscripts.org/scripts/show/125936 <= посмотрите здесь ("if (src.search (/ bad \. js /)! = -1) {")
Гомер

Я до сих пор не понимаю, как это помогает мне. Можете ли вы отредактировать его в своем ответе с более полным объяснением того, как он отвечает на вопрос?
CVn
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.