2012-02-02 14 views
8

Wydaje się powtarzającym się trudne pytanie, ale ja nadal nie mam poprawkę ani obejście dla niego:skrót klawiszowy VS nawigator klawiatury

Czy istnieje sposób, aby przechwycić accesskeys przed skrótów klawiaturowych?

muszę korzystać accesskeys na moich ulubionych nawigator IE oraz FF, ale nie wa do rozważenia istniejących skrótów klawiaturowych, jak zastrzeżone. W przeciwnym razie nie pozostawia wiele możliwości (obecnie używam tylko liczb).

Uwaga: przez accesskey mam na myśli atrybut html accesskey.

Każdy pomysł? Aplikacje Flash to potrafią, więc co z JavaScriptem?


Na przykład tutaj jest dostępny kontrola:

<button onclick="alert('Hello');" accesskey="F">Alt+F to activate</button> 

Gdy próbuję uruchomić go po prostu otwarty pliku menu: "(

+2

** UWAGA ** Nie rozwiążesz problemu z firefoxem, ponieważ klawisze dostępu są aktywowane * Shift + Alt + [klawisz] * i menu z * Alt + [klawisz] *. – sinsedrix

+0

Jeśli korzystasz z kontrolerów keydown, możesz zablokować domyślne zachowanie. Z kluczami dostępu, moje doświadczenie (sprzed około 2 lat) polega na tym, że trzeba się upewnić, że nie kolidują one z opcjami menu, co nie jest zbyt wykonalne. –

+2

Mam nadzieję, że odpowiedź brzmi "nie".Nie chcę, aby jakakolwiek stara strona internetowa była w stanie hi-jack moich poleceń klawiaturowych. Kiedy uderzę * Alt + F *, chcę menu Plik. – Umbrella

Odpowiedz

1

John Resig (twórca jQuery) został pracuje na „skrótu” dodatek do jQuery, który powinien zrobić to, czego szukasz.

https://github.com/jeresig/jquery.hotkeys

Wiem, że to nie jest "pytanie jQuery", a dodanie ram dla czegoś "małego" nie jest idealne, ale powinno zaoferować rozwiązanie. Z drugiej strony zawsze możesz sprawdzić, jak to zrobił, aby uzyskać inspirację.

+0

Może to być rozwiązanie jQuery. Czytałem o tej wtyczce, ale to nie pasuje, ponieważ w addendum jest napisane, że domyślne zachowanie będzie również uruchamiane: "Inni, (IE) albo pozwolą ci radzić sobie z wbudowanymi skrótami, ale dodadzą swoją funkcjonalność po wykonaniu kodu . " – sinsedrix

0

Oczywiście będzie to zależeć od przeglądarki. Dla "wielkiej trójki":

  • Firefox: menu skrótów użyć Alt "accesskey" skróty używać Shift,Alt, więc nie ma konfliktu.
  • Google Chrome: oba rodzaje skrótów użyć Alt i skróty menu nadrzędne, ale, czy istnieje konflikt "accesskey" skróty używać Przesunięciealt, więc są jeszcze dostępne. Zobacz moją odpowiedź na Disable Alt functions (shortcuts) in Google Chrome na przykład.
  • Internet Explorer: oba rodzaje skrótów używają Alt, a skróty "accesskey" mają pierwszeństwo - tylko to, co chcesz :-).

W skrócie: Nie, nie ma sposobu, aby zastąpić zachowanie przeglądarki w Javascript (i zapewne która byłaby luka w zabezpieczeniach), ale wszystkie przeglądarki mają sposoby rozwiązania tych konfliktów.

+0

I dlaczego jest w "wielkiej trójce" IE, a nie w Operze? : o) – Legionar

+0

@Legionar: Szczerze mówiąc, ponieważ nie miałem instalacji Opery pod ręką (tak jak w Konquerorze, Safari, przeglądarce Android ...) :-). Możesz edytować odpowiedź, jeśli masz informacje w innych przeglądarkach. – sleske

Powiązane problemy