Как предотвратить навигацию вперед/назад с помощью клавиш Command+стрелка в macOS Chrome?

Вопрос или проблема

На macOS я часто использую сочетания клавиш commandстрелка влево или commandстрелка вправо, чтобы переместить курсор в начало или конец текста.

К сожалению, если я делаю это в приложении веб-браузера Chrome на настольном компьютере, и фокус клавиатуры случайно уходит из текстового поля, то браузер будет перемещаться вперед или назад по истории.

Я ожидаю, что только сочетания клавиш command[ или command] будут использоваться для перемещения по истории.

Какой самый простой способ сделать это (желательно без сторонних приложений, возможно что-то в chrome://)?

Если у вас есть доступ к коду, вы можете перехватить сочетание клавиш для страницы:

document.addEventListener("keydown", function(e) {
  if ( ( e.metaKey || e.ctrlKey )
      && e.keyCode == 37 ) // клавиша стрелка влево.
  {
         e.preventDefault();
  }
}, false);

Мой выбор пал на использование расширения Chrome: Отключить сочетания клавиш.
Но было неочевидно, как с ним работать.
Перейдите на chrome://extensions/shortcuts
Найдите блок с названием Отключить сочетания клавиш
Нажмите Редактировать (карандаш), используйте сочетание клавиш, выберите Chrome (или Global)
Но: cmd+стрелка вообще не работает. Используйте cmd+shift+стрелка.
Не идеально ((

Другой способ: создать ‘фейковое’ сочетание клавиш в настройках системы macOS для Chrome, как например Открыть файл… или Увеличение. Потому что по умолчанию cmd+стрелка обычно работает корректно с текстом — эта раздражающая ошибка будет редкой, но все же другой способ. По крайней мере, мы не потеряем ваши данные.
Тоже не идеально ((

Попробуйте использовать Ctrl+A и Ctrl+E в текстовом поле; они должны безопасно выполнить то, что вам нужно!

Ответ или решение

Теория

На macOS использование сочетаний клавиш commandleft arrow и commandright arrow позволяет быстро перемещать курсор к началу или концу строки. Это особенно полезно при редактировании текста. Однако в браузере Google Chrome на macOS есть специфическая проблема: если фокус клавиатуры случайно уходит из текстового поля, эти же комбинации начинают работать как команды навигации назад или вперед по истории браузера. Пользователи рассчитывают, что для навигации по истории будет использоваться только command[ и command]. Как избежать этой проблемы без использования сторонних приложений — важный вопрос для многих пользователей.

Пример

На практике, если вы работаете с текстом в Google Chrome, и неожиданно обнаруживаете, что произошел переход к предыдущей или следующей странице, скорее всего, причина в вышеописанном сочетании клавиш. Это может привести к потере важных данных или времени, особенно если у вас были незаполненные формы на текущей странице.

Применение

Вариант 1: Использование встроенных функций Chrome

К сожалению, в настройках Chrome не предусмотрено прямого выключателя для отключения этих сочетаний клавиш. Однако можно использовать следующие советы.

  1. Использование JavaScript для перехвата событий на веб-странице: Если у вас есть доступ к коду веб-страницы, вы можете предотвратить переходы, перехватывая события клавиатуры.

    document.addEventListener("keydown", function(e) {
      if ((e.metaKey || e.ctrlKey) && e.keyCode == 37) { // left arrow key
        e.preventDefault();
      }
    }, false);
  2. Расширение Chrome: Расширение "Disable keyboard shortcuts" позволяет настроить и блокировать определенные сочетания клавиш. Убедитесь, что вы настроили его корректно через chrome://extensions/shortcuts.

Вариант 2: Системные настройки macOS

Вы можете создать ‘фальшивое’ сочетание клавиш в системных настройках macOS для приложения Chrome:

  1. Откройте Системные настройки > Клавиатура > Сочетания клавиш.
  2. Перейдите в Программы, выберите Google Chrome.
  3. Создайте новое сочетание, например, для команды, которая редко используется, например, "Открыть файл" или "Настроить масштаб", и установите для него commandleft arrow или commandright arrow.

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

Вариант 3: Альтернативные сочетания клавиш

Как предложено, вместо использования command+стрелок, можете использовать Ctrl+A и Ctrl+E в текстовом поле для перемещения к началу и концу строки соответственно. Эти команды исторически пришли из Unix и поддерживаются большинством текстовых полей в UNIX-системах, включая macOS.

Заключение

Навигация по истории браузера с помощью стрелок на клавиатуре может быть непреднамеренной и причиняет неудобства пользователям macOS, привыкшим к богатым возможностям по редактированию текста с помощью клавиатуры. К сожалению, Chrome не предлагает готового решения для этой проблемы. Однако, используя комбинации встроенных функций, расширений и системных настроек, можно достигнуть желаемого результата без необходимости установки сторонних приложений. Надеюсь, данные решения помогут минимизировать неудобства и повысить эффективность вашей работы.

Оцените материал
Добавить комментарий

Капча загружается...