Moi użytkownicy chcieliby móc nacisnąć Ctrl+, Saby zapisać formularz. Czy istnieje dobry sposób na przechwycenie kombinacji klawiszy Ctrl+ Si przesłanie formularza w różnych przeglądarkach?
Aplikacja jest oparta na Drupalu, więc dostępna jest jQuery.
javascript
jquery
ceejayoz
źródło
źródło
keydown
zamiastkeypress
w chromeTo działa dla mnie (używając jquery) do przeciążenia Ctrl+ S, Ctrl+ Fi Ctrl+ G:
źródło
window.addEventListener(
zamiast$(window).bind(
else if
nie zadziała, ponieważ oryginalnaif
instrukcja będzie już oceniona jako prawdziwa. Będziesz musiał umieścić swój kod przed oryginalnymif
oświadczeniem, zamieniając oryginał w plikelse if
.Możesz użyć biblioteki skrótów do obsługi rzeczy specyficznych dla przeglądarki.
źródło
To rozwiązanie jQuery działa dla mnie w Chrome i Firefox, zarówno dla Ctrl+, jak Si Cmd+ S.
źródło
e.key
zamiaste.which
;Ten działał dla mnie na Chrome ... z jakiegoś powodu
event.which
zwraca mi duże S (83), nie wiem dlaczego (niezależnie od stanu Caps Lock), więc użyłemfromCharCode
itoLowerCase
po prostu po bezpiecznej stronieJeśli ktoś wie, dlaczego dostaję 83 a nie 115 to z przyjemnością usłyszę, również jeśli ktoś testuje to na innych przeglądarkach to chętnie usłyszę czy to działa czy nie
źródło
Połączyłem kilka opcji, aby obsługiwać FireFox, IE i Chrome. Zaktualizowałem go również, aby lepiej obsługiwał mac
źródło
Naprawdę chciałbym, aby aplikacje internetowe nie zastępowały moich domyślnych klawiszy skrótu. Ctrl+ Sjuż coś robi w przeglądarkach. Nagła zmiana w zależności od witryny, którą przeglądam, jest uciążliwa i frustrująca, nie wspominając o często błędach. Miałem przechwytywanie witryn Ctrl+, Tabponieważ wyglądało to tak samo jak Ctrl+ I, co zrujnowało moją pracę na stronie i uniemożliwiło mi normalne przełączanie kart.
Jeśli chcesz klawisze skrótów, użyj
accesskey
atrybutu. Nie przerywaj istniejącej funkcjonalności przeglądarki.źródło
@Eevee: Ponieważ przeglądarka staje się domem dla bogatszych i bogatszych funkcji i zaczyna zastępować aplikacje komputerowe, po prostu nie będzie można zrezygnować ze skrótów klawiaturowych. Bogaty i intuicyjny zestaw poleceń klawiaturowych Gmaila odegrał kluczową rolę w mojej chęci porzucenia Outlooka. Skróty klawiaturowe w Todoist, Czytniku Google i Kalendarzu Google ułatwiają mi codzienne życie.
Deweloperzy zdecydowanie powinni uważać, aby nie zastąpić naciśnięć klawiszy, które już mają znaczenie w przeglądarce. Na przykład pole tekstowe WMD, w którym piszę, w niewytłumaczalny sposób interpretuje Ctrl+ Deljako „cytat blokowy”, a nie „usuń słowo do przodu”. Ciekaw jestem, czy istnieje gdzieś standardowa lista „bezpiecznych dla przeglądarki” skrótów, z których mogą korzystać twórcy witryn i od których przeglądarki będą się trzymać z daleka w przyszłych wersjach.
źródło
To jest wersja up-to-date z @ odpowiedź AlanBellows męska, zastępując
which
zkey
. Działa również z usterką klawisza wielkiego Chrome (gdzie po naciśnięciu Ctrl+ Swysyła duże S zamiast s). Działa we wszystkich nowoczesnych przeglądarkach.źródło
To było moje rozwiązanie, które jest znacznie łatwiejsze do odczytania niż inne sugestie tutaj, może z łatwością zawierać inne kombinacje klawiszy i zostało przetestowane w IE, Chrome i Firefox:
źródło
String.fromCharCode
. Chociaż komputery Mac nie mają klawisza sterującego. Sprawdź klawisz polecenia za pomocąevt.metaKey
. Wracatrue
do Cmd na Macu i Win w Windows.Podoba mi się ta mała wtyczka . Wymaga jednak nieco większej zgodności z różnymi przeglądarkami.
źródło
To powinno działać (dostosowane z https://stackoverflow.com/a/8285722/388902 ).
źródło
przykład:
stosowanie
link do pobrania: http://www.openjs.com/scripts/events/keyboard_shortcuts/#
źródło
Do Alana Bellowsa odpowiedź:! (E.altKey) dodany dla użytkowników, którzy używają AltGrpodczas pisania (np. Polska). Bez tego naciśnięcie AltGr+ Sda taki sam wynik jak Ctrl+S
źródło
Ta wtyczka stworzona przeze mnie może być pomocna.
Podłącz
Możesz użyć tej wtyczki, aby podać kluczowe kody i funkcje, aby uruchomić w ten sposób
W kodzie pokazałem jak wykonać dla Ctrl+ S. Otrzymasz szczegółową dokumentację pod linkiem. Wtyczka znajduje się w sekcji kodu JavaScript Mojego pióra na Codepen.
źródło
Rozwiązałem swój problem w IE , używając znaku,
alert("With a message")
aby zapobiec domyślnemu zachowaniu:źródło