Skrót klawiaturowy [kbd]Ctrl[/kbd]/[kbd]⌘[/kbd]+[kbd]Enter[/kbd] jest coraz popularniejszy i większość stron takich jak gmail.com czy GitHub w pełni go obsługuje do wysyłania aktualnie aktywnego formularza. W przypadku GMail’a jest to oczywiście skrót wysyłający aktualnie edytowaną wiadomość, w aplikacji i interfejsie www GitHub’a pozwala wstawić komentarz lub zatwierdzić commit. Wciąż jednak pozostają strony gdzie byłby wyjątkowo użyteczny a niestety nie jest obsługiwany i często pozwoliłby zaoszczędzić odrobinę czasu i łatwiej nawigować po stronie.

Poszukując rozwiązania możemy natrafić na różne rozszerzenia do przeglądarki, które pozwalają uruchomić dany skrót klawiaturowy dla konkretnej strony jak np. Replies and more for Google+ jednak to wciąż nie rozwiązuje problemu gdy taką funkcjonalność chcielibyśmy uzyskać na dowolnej witrynie. Istnieją rozwiązania z założenia uniwersalne ale daleko im do ideału bo w większości testowanych przeze mnie przypadków wysyłały niepoprawny formularz lub używały złej akcji niż domyślna np. zapewniały podgląd wiadomości zamiast jej wysłania.

Z pomocą w tej kwestii przychodzi Keyboard Maestro czyli mały kombajn pozwalający wycisnąć z klawiatury o wiele więcej niż oferuje system operacyjny. Po bliższym poznaniu Keyboard Maestro mogę swobodnie stwierdzić, że możliwości tego programu są ograniczone jedynie wyobraźnią użytkownika bo do tej pory nie znalazłem problemu związanego z sterowaniem z klawiatury, którego nie rozwiązałbym za pomocą tej aplikacji.

Wracając do sedna sprawy – Keyboard Maestro pozwala nam domyślnie utworzyć makra dla Chrome i Safari wliczając w to taką funkcję jak uruchomienie dowolnego kodu JavaScript na aktualnie otwartej stronie. Akcja wysyłająca formularz nazywa się “Submit Google Chrome/Safari form” i domyślnie używa następującego kodu:

document.forms[0];

Jak widać nie jest to zbyt szczęśliwe rozwiązanie – zadziała poprawnie jedynie gdy formularz, który chcemy wysłać jest pierwszy w strukturze DOM a to rzadko spotykany przypadek. Większość stron oprócz np. formularza, który chcielibyśmy użyć w makrze posiada także wyszukiwarkę lub okno logowania tak więc forms[0] w tym wypadku się nie sprawdzi. Można oczywiście odwoływać się do kolejnych elementów w tablicy document.forms ale nie jest to rozwiązanie uniwersalne. Zdecydowanie lepiej jest skorzystać z akcji Execute a JavaScript in Google Chrome/Safari i po prostu zasymulować kliknięcie w przycisk Submit w konkretnym formularzu:

document.getElementsByName('post')[0].click()

Keyboard Maestro Macro

W powyższym przykładnie kod wysyła zawsze formularz o ID ‘post’ i nic nie stoi na przeszkodzie aby takie makro powielić dla każdej ze stron podając odpowiednie ID przycisku. Aby udoskonalić rozwiązanie i jednym makrem sterować formularzami na wielu stronach najlepiej jest dodać warunek IF i sprawdzić np. tytuł strony. Poniższe makro sprawdza czy strona strona ma w tytule słowo ‘forum’ a następnie wysyła formularz dodawania wpisu/wątku po naciśnięciu [kbd]Ctrl[/kbd]/[kbd]⌘[/kbd] + [kbd]Enter[/kbd].

Makro, które oczywiście można dowolnie modyfikować i rozwijać o kolejne instrukcje warunkowe można pobrać pod tym linkiem.

w dniu .

Back to top