Сочетание клавиш для перехода из текстового поля ввода (т. е. для удаления фокуса ввода)

Я использую autohotkey для выполнения ctrl + home комбо, когда я нажимаю среднюю кнопку мыши, с результатом прыжка в верхней части веб-страницы я нахожусь. Это, однако, ломается, если курсор находится внутри текстового поля ввода, так как ctrl + home в этом случае просто берет курсор в начало поля ввода.

выполнение табуляции перед ctrl + home может работать иногда, но не всегда, так как курсор может просто переместиться в другое поле ввода. Нажатие клавиши alt удаляет курсор из поле ввода, но после этого ctrl + home не будет работать.

моя цель-чтобы уверенно перейти к верхней части любой страницы.

мой скрипт на данный момент:

MButton::
SendInput ^{home}
return
;
22
задан Ikram Hawramani
25.03.2023 12:29 Количество просмотров материала 3286
Распечатать страницу

2 ответа

@Marcelo подал мне идею использования JavaScript. Раньше я думал об этом, но это не возможно сделать с помощью горячих клавиш. Тогда я вспомнил JavaScript: псевдо-протокол и придумал следующий код, который надежно работает:

MButton::
SendInput ^{l}
Sleep 1
SendInput {Raw}javascript:document.activeElement.blur();
Sleep 1
SendInput {Enter}
Sleep 1
SendInput ^{home}
return
;

код сначала использует CTRL+l, чтобы перейти к адресной строке, вводит JavaScript там (Chrome не позволяет вставлять javascript: в адресной строке это должно быть сделано как необработанный ввод). Enter нажата для выполнения кода, в этом случае простой Ctrl + Home работает, чтобы перейти к вершине.

команды сна необходимы после ключевых комбо, в противном случае ввод может получить искажены.

хотя это работает надежно (и, таким образом, отвечает на мой вопрос), это медленно и немного страшно, так как любая проблема с вводом скрипта может заставить браузер интерпретировать код как поисковый запрос, что приведет к потере содержимого страницы.

вместо этого я собираюсь использовать идею @crazypotato об использовании page-up, хотя и с разумное количество нажатий клавиш:

MButton::
SendInput {PgUp 5}
return
;

это работает в моем случае очень хорошо, как я имею дело с (что требует решения в первую очередь) все одинаковой высоты.

1
отвечен Ikram Hawramani 2023-03-26 20:17
!MButton:: ; ALT + Middle Mouse Button
SendInput {PgUp 200} ;press Page-up key 200 times

некоторые более hackish (не рекомендуется) решения:

!MButton:: ; ALT + Middle Mouse Button
SendInput {F5} ;easy reload page for remove focus but its save current scroll
Sleep, 1000 ; wait for page loading
SendInput {HOME} ;go home

вам нужно переместить курсор на пустое место на странице, прежде чем нажать ALT + среднюю кнопку мыши:

!MButton:: ; ALT + Middle Mouse Button
MouseClick,left ; click on empty space on page with current mouse coord
SendInput {HOME} ;go home u drunk

обновление:

найденный ключ для возврата к верхней странице, даже если поле ввода сфокусировано, но работает только с некоторыми браузерами (не работает в Firefox). Ctrl+Alt+Home

MButton::
SendInput ^!{HOME}
0
отвечен crazypotato 2023-03-26 22:34

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх