Jak zapobiec chwytaniu / przejmowaniu naciśnięć klawiszy przez strony internetowe w przeglądarce Firefox? [duplikować]

18

Niektóre strony internetowe (wydaje się, że obecnie jest ich coraz więcej) przejmują różne kombinacje klawiszy w celu wykonywania działań w obrębie i zdefiniowanych przez samą witrynę. Istnieje konkretny przykład /w Gmailu w niewłaściwie zatytułowanym pytaniu; jest pole edycyjne StackExchange, które przechwytuje Ctrl+ Gdla „Dodaj obraz” (zamiast zwykłego „Znajdź następny”) Firefoksa; ma miejsce przejęcie Facebooka w Esccelu ukrycia nakładki zamiast zwykłego „zatrzymywania ładowania”. Jestem pewien, że mógłbym kontynuować z przykładami, ale to powinno wystarczyć, aby zilustrować, że to pytanie nie dotyczy konkretnej witryny.

Używam klawiatury w szerokim zakresie, a skróty klawiaturowe zachowujące się inaczej w zależności od tego, na której stronie jestem, są dla mnie dużą irytacją. Jeśli naciskam skrót klawiaturowy zdefiniowany w przeglądarce, chcę, aby akcja zdefiniowana przez przeglądarkę była podejmowana, a nie coś innego. Nie chcę też, aby niektóre funkcje, które normalnie są dostępne za pomocą klawiatury, nie były dostępne za pomocą klawiatury lub nagle zostały przypisane do innych kombinacji klawiszy.

Zdaję sobie sprawę, że w niektórych witrynach może to utrudniać pracę, ale w tym przypadku wolę spójność.

Czy możliwe jest skonfigurowanie przeglądarki Firefox, aby zapobiegać takim atakom przez strony internetowe lub je ignorować i sprzyjać zdefiniowanemu zachowaniu Firefoksa?

Idealne byłoby rozwiązanie, które działa przynajmniej w Firefoksie w wersjach 20, 21 i 22 zarówno w systemie Linux, jak i Windows.

Edycja Mozilla Bugzilla Bug 380637 Czy strony internetowe powinny być w stanie zastąpić skróty klawiaturowe przeglądarki? wydaje się wskazywać, że przynajmniej na to patrzy. Ten błąd został pierwotnie zgłoszony w połowie 2007 r. I nadal jest aktywny od połowy 2013 r. Co ciekawe, błąd 775002 Włączanie przez użytkowników wyłączania javascript do przechwytywania skrótów klawiaturowych było uważane za duplikat w Firefoksie 15.

CVn
źródło
2
Podejrzewam, że robią to za pomocą Javascript. Jeśli tak, nie byłoby ogólnego sposobu na wyłączenie go bez wyłączenia Javascript.
Daniel R Hicks,
tak, może api.jquery.com/keypress . Byłoby interesujące, gdyby istniał dodatek, który pozwalał na selektywne ponowne pisanie .js po stronie klienta. możesz następnie skomentować te połączenia za pomocą wyrażenia regularnego lub podobnego
James
4
Nawet jeśli odbywa się to za pomocą Javascript, gdzieś musi być zaangażowany słuchacz naciśnięć klawiszy, a ta funkcja jest zapewniana przez przeglądarkę . Nie widzę powodu, dla którego ten kod nie mógłby zostać zmodyfikowany, tak aby przeglądarka najpierw interpretowała naciśnięcia klawiszy (być może za pomocą klawiszy modyfikujących), a jeśli przeglądarka podejmie jakiekolwiek działanie w odpowiedzi, naciśnięcie klawisza nie jest przekazywane do Javascript udostępnionego przez Strona internetowa. Konfigurowanie takiego zachowania (jeśli nie chcesz ujawniać go za pomocą graficznego interfejsu użytkownika ustawień, wciąż istnieje: config, który już umożliwia dostęp do wielu takich zaawansowanych ustawień) powinno być dość łatwe.
CVn
@Downvoter Dlaczego głosowanie negatywne?
CVn
1
@Karan To pytanie ma pełne trzy lata, a zaakceptowana odpowiedź mówi o Firefoksie 3.6 . Chociaż nie do końca zgadzam się z obecnym schematem numeracji wersji Firefoksa, prawdopodobnie od tego czasu jesteśmy znacznie powyżej 20 wydań, w ciągu trzech lat rozwoju. Co powiedzieć, że zawarte w nim odpowiedzi są nadal aktualne w aktualnych wersjach Firefoksa?
CVn

Odpowiedzi:

1

Możesz użyć wtyczki Vimperator. Mając na celu uczynienie Firefoksa interfejsem tylko z klawiatury, najpierw nasłuchuje każdego naciśnięcia klawisza i wykonuje własne działania. Czasami, gdy będziesz potrzebować użyć zdefiniowanych w witrynie porwań klawiatury, możesz z łatwością włączyć / wyłączyć tryb przekazywania na jakiś czas.

Weźmy przypadek GMail, który oferuje wiele skrótów klawiaturowych. Ale kiedy naciśniesz taki skrót, jest on obsługiwany przez sam Vimperator. Na przykład naciśnięcie /w Gmailu zwykle umieszcza kursor w polu wyszukiwania. Ale naciśnięcie /strony GMail, gdy Vimperator jest aktywny, uruchamia domyślne wyszukiwanie strony (wyszukiwanie w edytorze Vim). To samo dotyczy innych skrótów Gmaila, takich jak o club nawet Ctrl+Enter. Oznacza to, że Vimperator będzie 0 słuchaczem naciśnięć klawiszy w Firefoksie, wyprzedzając nawet 1. możliwych słuchaczy, dzięki czemu skróty klawiaturowe będą globalne w całej przeglądarce.

Vimperator to po prostu opakowanie Vima dla Firefoksa. Jeśli czujesz się dobrze z Vimem, Vimperator będzie wyglądał jak dawno zagubiony przyjaciel. :-)

W każdym razie, kilka skrótów klawiaturowych Vimperatora na początek:

o<link>otwiera. Sekwencje te powodują aktywację wiersza poleceń Vimperatora (na dole ekranu) i polecenie open <link>zostanie tam umieszczone, z miejscem dla ciebie wstawionym w środku. Naciśnij, Enteraby załadować stronę.

t<linkaktywuje polecenie tabopeni otwiera link w nowej karcie.

gtprzechodzi do następnej karty. Ctrl+Taba Ctrl+PgUp/Dntakże praca.

gT przełącza do poprzednich kart.

ZZ zamyka FF po zapisaniu sesji.

foznaczy wszystkie łącza w widoku strony wyróżnionymi numerami. Wpisanie numeru otwiera link. Wszystkie podświetlone pola można przeszukiwać. Zamiast wpisywać liczby, możesz wpisać dowolny tekst w podświetlonym łączu, do którego chcesz przejść.

F otwiera linki w zakładce w tle.

h j k lporuszać się po stronie left down upiright

Vimperator oferuje wiele skrótów klawiaturowych (i na pewno sprawia, że ​​całe doświadczenie jest bezbolesne bez myszy), a większość domyślnych skrótów FF działa tak, jak zwykle. Możesz znaleźć skróty do podświetlania tekstu, kopiowania ich, nawigowania po stronie jak w dokumencie tekstowym, powiększania / pomniejszania, symulacji najechania kursorem na link i po prostu wszystko, co sprawi, że Firefox zareaguje na mysz.

Jedynym miejscem, w którym nie działa tak daleko, jak go użyłem, są wewnątrz skrzynek Flash, ponieważ FF nie może dotrzeć do tego, co jest w nich.

Przyzwyczajenie się może zająć trochę czasu, jeśli nie wiesz o Vimie lub jesteś nowy. Jednak naprawdę obszerna pomoc online jest już :h<Enter>daleko.

Oto link .

Sriharsha
źródło
najwyraźniej vimperator nie jest już kompatybilny z nowoczesnymi wersjami Firefoxa.
sylvainulg,
-1
  • Spróbuj użyć wtyczki noscript dla Firefoxa, aby wyłączyć niektóre skrypty JS http://noscript.net/
Homer Simpsons
źródło
1
NoScript pozwala ładować lub nie ładować całego Javascript z poszczególnych domen. Już go używam i jest świetny w tym, co robi, ale czy próbowałeś np. Facebooka lub StackExchange bez Javascript? To doświadczenie jest gdzieś pomiędzy dość bolesnym a wręcz bezużytecznym. Wyłączenie całego Javascript na całym świecie dla Facebooka tylko po to, aby mój klawisz Esc wrócił do normy, jest raczej przesadą.
CVn
spróbuj oznaczyć skrypt jako niezaufany Pic: i.stack.imgur.com/45aAv.png lub użyj proxy do zablokowania jakiejkolwiek odpowiedzi ze skryptu, np. skrzypek
Homer Simpsons,
Jeśli użyję NoScript do oznaczenia np. Facebook.com jako niezaufanego, nie uruchomi się Javascript pochodzący z facebook.com. Nie tego chcę. Przeczytaj ponownie pytanie.
CVN
Użyj tego linku: addons.mozilla.org/sv-se/firefox/addon/greasemonkey i link do skryptu: userscripts.org/scripts/show/125936 <= spójrz tutaj ("if (src.search (/ bad \. js /)! = -1) {")
Homer Simpsons,
Nadal nie rozumiem, jak to mi pomaga. Czy potrafisz go edytować w swojej odpowiedzi z pełniejszym wyjaśnieniem, w jaki sposób odpowiada na pytanie?
CVn