На JSFiddle, с которым вы связаны, по крайней мере, Ctrl- TABи Ctrl- Shift- TABвсе еще функция, так что вы можете переключиться на следующую вкладку и вернуться, чтобы отменить режим прохода. По какой-то причине вы все еще не можете получить доступ к командной строке, но другие ключи работают, поэтому вы всегда можете обновить страницу, rчтобы исправить это.
Как менее хакерское решение, вы можете определить команду в вашем файле .pentadactylrc, чтобы остановить кражу ключевых событий страницы:
command! nointercept -js document.addEventListener('keydown', function(e) { e.stopImmediatePropagation(); return false;}, true);
Затем, если вы нажмете
:nointercept
на странице до щелчка по основной области, вы сможете выйти из режима сквозного просмотра. При использовании этого метода командная строка работает нормально после выхода из режима сквозного просмотра.Если вы хотите только остановить страницу, перехватывающую Escклавишу, вы можете изменить команду для проверки
e.keyCode===27
.Если вы хотите применить приведенный выше код автоматически, вы можете превратить его в пользовательский скрипт ( как вы, вероятно, знаете, Greasemonkey ). Следующее должно работать, если вы заполните правильные URL или шаблоны URL после
@include
// ==UserScript== // @name nointercept // @description Prevent site from stealing key presses // @run-at document-start // @include http://site.url // ==/UserScript== document.addEventListener( 'keydown', function(e) { e.stopImmediatePropagation(); return false; }, true );
Как выйти из режима Pass Through в Pentadactyl, когда нажата клавиша Escape?
Действия по воспроизведению:
Посетите эту страницу . Это JSFiddle, состоящий полностью из
window.onkeydown = function(e) { e.preventDefault(); };
Щелкните внутри серой области под белой верхней панелью, чтобы выделить основной участок.
Нажмите Ctrl+, Zчтобы войти в режим Pass Through.
Нажмите Esc. Это не удастся, потому что ключ перехватывается JavaScript и никогда не отправляется в Pentadactyl.
Это легко уменьшить в примере, нажав на верхнюю панель, чтобы переместить фокус в область, содержащую onkeydown
, позволяя Escape пройти и выйти из режима Pass Through. Тем не менее, я работаю с сайтом, который перехватывает все нажатия клавиш (с preventDefault
) через window.onkeydown
, поэтому некуда перенести фокус.
Единственное решение, которое мне удалось найти, - это создать новую вкладку и затем закрыть ее ( d
). Однако это требует использования мыши (так как t
ярлык больше не работает, потому что мы в режиме Pass Through), и это обходной путь.
Есть ли способ выйти из режима Pass Through, используя только клавиатуру, на сайте, который перехватывает все нажатия клавиш?
1 ответ на вопрос
Похожие вопросы
-
3
Установите Silverlight для Mozilla Firefox без прав администратора
-
8
Firefox PDF плагин для просмотра PDF в браузере на Windows
-
2
Ограничить использование процессора для Flash в Firefox?
-
-
7
Есть ли в Mac OS X эквивалент Ctrl + Tab?
-
6
Почему Firefox в Linux выглядит иначе, чем Windows / Mac?
-
6
Беспроводная (алюминиевая) клавиатура Apple на Windows
-
13
Как получить новую сессию браузера при открытии новой вкладки или окна в Firefox / Chrome?
-
1
Функция копирования / вставки потеряна
-
2
Firefox печать в PDF-файл
-
4
Firefox 3.5 медленно, чтобы начать выпуск