Ändern Sie die Accesskey-Zusatztasten in Firefox

8

Ich arbeite an einer Website, auf der jede Seite Schaltflächen wie "Senden" und "Abbrechen" hat. Jede dieser Schaltflächen hat ein accesskey -Attribut. Das Attribut accesskey des Absenden-Buttons wird auf S und das accesskey -Attribut des Abbrechen-Buttons auf C gesetzt.

Zugriffsschlüssel werden mit verschiedenen Modifikatoren in verschiedenen Browsern aktiviert. Internet Explorer, Safari und Google Chrome verwenden nur das alt , während Firefox sowohl die alt als auch die shift Tasten verwendet. Außerdem verwendet Firefox alt + s , um das Verlaufsmenü zu öffnen.

Antworten auf diese Frage sollten nicht vorschlagen, die Einstellungen in der Konfiguration des Browsers zu ändern, da dies in einer Produktionsumgebung nicht möglich wäre.

Wie ändere ich die von Firefox verwendeten Modifizierertasten für accesskey auf nur alt und verhindere, dass das Verlaufsmenü geöffnet wird?

Ich arbeite in Ubuntu 16.04.

    
bob marti 07.02.2017, 10:15
quelle

2 Antworten

6

Sie können nicht - soweit ich das beurteilen kann - die Tastenkombination ändern, die zum Aktivieren von accesskey erforderlich ist, aber das, was Sie erreichen möchten, erfordert nicht die Verwendung des Attributs accesskey . Sie können direkt auf das Keydown-Ereignis warten.

Fügt dem Dokument einen Keydown-Ereignis-Listener hinzu. Überprüfen Sie in der Handler-Funktion, ob die Tasten alt und s gedrückt sind. Wenn dies der Fall ist - und keine anderen Zusatztasten gedrückt werden -, verhindern Sie die Standardaktion des Ereignisses und lösen Sie dann ein Klickereignis auf der Übergabeschaltfläche aus. Wenn Sie das Klickereignis auf der Übergabeschaltfläche auslösen, wird wiederum der Übergeben-Ereignislistener ausgelöst href="https://developer.mozilla.org/en/docs/Web/API/HTMLFormElement/submit"> Auslösen des Senden-Ereignisses im Formular direkt nicht möglich.

%Vor% %Vor%

Hinweise :
1. Obwohl dies in der aktuellen stabilen Version von Firefox funktioniert, habe ich keine anderen Versionen
2 getestet. In diesem Beispiel werden Sprachfeatures verwendet, die in der Version 2015 von Die ECMAScript-Sprachspezifikation . Diese Funktionen sind nicht erforderlich, um den gewünschten Effekt zu erzielen, sondern erleichtern das Lesen des Codes. Wenn Sie ältere Browser unterstützen müssen, können Sie var anstelle von const und eine Standardfunktion anstelle der fetten Pfeilfunktion verwenden.
3. Leider funktioniert die Stapelüberlauf-Snippet-Funktion in diesem Beispiel aufgrund des Sandboxing nicht, siehe Beispiel für JSBin stattdessen

    
Tiny Giant 23.02.2017 20:14
quelle
-2

Wenn Sie ein tiefes Wissen darüber haben wollen, dann versuchen Sie diesen Artikel mit mehr Informationen: Ссылка

Wenn Sie feststellen, dass Sie sich nicht an den Einstellungsdialog "In-Tab" gewöhnen können, sollten Sie lieber zum alten Stil zurückkehren:

  1. Geben Sie in einer neuen Registerkarte Folgendes ein oder fügen Sie in der Adressleiste Folgendes ein: Drücken Sie Enter. Klicken Sie auf den Button, der verspricht vorsichtig zu sein.

  2. Geben Sie im Suchfeld über der Liste pref und pause while ein Die Liste wird gefiltert

  3. Doppelklicken Sie auf die Einstellung browser.preferences.inContent, um zu wechseln es von wahr zu falsch

Hinweis: Ich weiß nicht, ob das für immer in Firefox sein wird oder eine Übergangsfunktion ist.

    
Irfan Bashir 07.02.2017 10:33
quelle