Версия для КПК

GaGa.Su

Услуги специалистов

Нижнего Новгорода


Программирование

Клавиатурные сочетания на сайте (Accesskey или JavaScript)

Программирование 

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

Программирование

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

Зачем это нужно?

Для удобства. Кому-то удобнее пользоваться мышью, а кому-то - клавиатурой. Было ли такое, что вы читаете статью или сборник анекдотов и вам нужно перейти на другую страницу, а тянуться за мышкой лень? Просто листать страницу можно клавишами "PageUp" (Вверх), "PafeDown"(Вниз). В некоторых браузерах можно использовать пробел. А как быть с другими страницами? Для этого и существует эта технология

Где это есть?

Вы можете оценить эти возможности "горячих клавиш" не покидая данного сайта. Вы можите воспользоваться Accesskey-сочетаниями, либо Alt+[KEY]; Ctrl+[KEY]; Ctrl+Alt+[KEY]

  • f активирует строку поиска по сайту;
  • g и/или u - главная страница сайта;
  • j - Новости Одной Строкой;
  • y - Новости;
  • c - Статьи;
  • d - Вакансии;
  • v - Юмор;
  • Left и/или b - На страницу назад (Только внутри рубрики "Юмор");
  • Right и/или n - На страницу вперёд (Только внутри рубрики "Юмор");
  • a - Форум;

Например: Ctrl+Alt+g - Откроет главную страницу на (GaGa.Su)

Обратите внимание, что в некоторых браузерах эти сочетания могут быть зарезервированны и могут выполнять другую функцию. Поэтому, могу рекомендовать использокание сочетаний Ctrl+Alt+[клавиша]

Немного теории

Есть две реализации этой для решения этой проблемы. Одна с помощью атрибута Accesskey, а вторая - через JavaScript.

Accesskey

Параметр accesskey позволяет активировать ссылку с помощью некоторого сочетания клавиш с заданной в коде ссылки буквой или цифрой. Браузеры при этом используют различные комбинации клавиш. Например, для accesskey="y" работают следующие сочетания.

  • Internet Explorer: Alt + y
  • Chrome: Alt + y
  • Opera: Shift + Esc + y
  • Safari: Alt + y
  • Firefox: Shift + Alt + y

При этом, у Opera показываются все доступные варианты.

JavaScript

Тут и проще и сложнее одновременно. Проще - потому как можно назначить почти любое сочетание клавиш или, даже, на одиночную клавишу. (Но! Будьте осторожны! При использования одиночных клавиш - будет невозможно печатать - будут срабатывать горячие клавиши.) Тут есть подвох. Браузер не даст просто так использовать те сочетания, которые нужны ему самому. Так в Opera и FireFox, сочетание Ctrl+u отвечает за показ исходников и мешает использованию именно этого сочетания.

Практика

Accesskey

Тут всё просто:

<a accesskey="x" href="http://www.gaga.su">GaGa.Su</a>

, где x может быть цифрой (0-9) или латинской буквой (a-z). При нажатии магического сочетания +sx произойдёт автоматический переход по ссылке.

JavaScript

Тут используются коды клавиш. Узнать их можно с помощью следующего кода:

 function checkKeycode(e) {
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
alert("keycode: " + keycode);
}

Как осуществить переход? Пусть будет ссылка вида:

<a id="gaga_page" href="http://www.gaga.su">GaGa.Su</a>
Теперь можно приступить к написанию JavaScript обработчика событий - event.

 function hotkeys(e) {
if (!e) e = window.event;
var k = e.keyCode;
if (e.ctrlKey) { // Сначала пусть будет нажат Ctrl
if (k == 71) { d = document.getElementById("gaga_page"); } // Ctrl+g
}
if (d) location.href = d.href;
}

Для того, чтобы всё это работало - необходим пусковой механизм.

function initial() {document.onkeydown = hotkeys;}

И запуск по загрузке (с перестраховкой - иначе может не запуститься)

<body onload="initial()" onpageshow="if (event.persisted) {initial();}">
RMV1983, специально для GaGa.Su

20.11.2009
 

* При цитировании материалов, ссылка на источник обязательна.

Содержание

Нижний Новгород
ПрограммированиеOpen Server — профессиональный инструмент веб-разработчика под Windows (Программирование) 01.02.2012

Новый профессиональный инструмент для веб-разработки под Windows. Подробнее...

ПрограммированиеБесплатные книги на русском — Windows Phone, Visual Studio, Small Basic (Программирование) 06.06.2011

В конце мая на конференции DevCon’11 объявили о доступности новых книг по технологиям Microsoft на русском языке – для разных категорий разработчиков. Подробнее...

ПрограммированиеРеализация видеочата и CouchDB на базе стандартных технологий HTML5 (Программирование) 10.04.2012

На состоявшемся в Париже саммите IETF 83 представители проекта Mozilla продемонстрировали прототип web-приложения, позволяющего совершить видеозвонок между двумя web-браузерами, используя для этого то Подробнее...

ПрограммированиеWindows Vista и Windows XP сближаются с Windows 7 (Программирование) 11.09.2009

Объявленный на этой неделе пакет обновлений под названием Platform Update for Windows Vista представляет собой набор библиотек времени исполнения (runtime libraries), которые позволят разработчикам ис Подробнее...

ПрограммированиеelRTE и elFinder - свободный редактор и файловый менеджер для Web (Программирование) 11.11.2009

Российские разработчики представили свободные проекты elRTE (WYSIWYG html-редактор) и elFinder (файловый менеджер для web). Код проектов открыт под лицензией BSD. Интерфейс целиком построен на jQuery Подробнее...

ПрограммированиеЕвропейский суд постановил, что программы и языки программирования не могут быть интеллектуальной собственностью (Программирование) 03.05.2012

Высший суд Европейского союза, постановления которого не могут быть обжалованы, вынес решение в деле "SAS против WPL", в котором рассматривался вопрос о правомерности копирования функциональности прог Подробнее...

ПрограммированиеПсихологическая деформация программистов. Взгляд с обеих сторон баррикад (Программирование) 27.02.2012

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

ПрограммированиеHSTS будет внедрён в Firefox и Google Chrome (Программирование) 17.11.2010

В ближайшее время стандарт HTTP Strict Transport Security (HSTS) будет поддерживаться браузерами Firefox и Google Chrome. Подробнее...

ПрограммированиеTwitter открыл код своих улучшений к MySQL (Программирование) 10.04.2012

Twitter опубликовал код своих дополнений и улучшений к MySQL, развиваемых в рамках ветки Twitter MySQL 5.5. В настоящее время СУБД MySQL продолжает использоваться в качестве основного хранилища данных Подробнее...

ПрограммированиеIBM выпускает самообучающийся компилятор Milepost GCC (Программирование) 04.07.2009

Выпущен самообучающийся компилятор Milepost GCC http://www.milepost.eu/ Подробнее...