JavaScript. Подробное руководство, 6-е издание
Шрифт:
Пример 17.8. Класс Key тар для обработки нажатий комбинаций клавиш
/*
* Keymap.js: связывает события клавиатуры с функциями-обработчиками.
*
* Этот модуль определяет класс Keymap. Экземпляр этого класса представляет
* собой отображение идентификаторов
комбинаций клавиш (определяемых ниже)
* в функции-обработчики. Объект Keymap можно установить в HTML-элемент
* для обработки событий keydown. Когда возникает это событие, объект Keymap
* использует свою карту привязок для вызова соответствующего обработчика.
*
* При создании объекта Keymap конструктору можно передать JavaScript-объект,
* представляющий начальную карту привязок. Имена свойств этого объекта должны
* соответствовать идентификаторам клавиш, а значениями должны быть функции-обработчики.
* После создания объекта Keymap в него можно добавлять новые привязки, передавая
* идентификатор клавиши и функцию-обработчик методу bind. Имеется также возможность
* удалить привязку, передав идентификатор клавиши методу unbind.
*
* Чтобы задействовать объект Keymap, следует вызвать его метод install, передав ему
* HTML-элемент, такой как объект document. Метод install добавит в указанный объект
* обработчик события onkeydown. Когда этот обработчик будет вызван, он определит
* идентификатор нажатой клавиши и вызовет функцию-обработчик (если таковая имеется),
* привязанную к этому идентификатору клавиши. Один и тот же объект Keymap
* можно установить сразу в несколько HTML-элементов.
*
* Идентификаторы клавиш
*
* Идентификатор клавиши - это нечувствительная к регистру символов строка,
* представляющая клавишу, плюс любое количество удерживаемых нажатыми
* клавиш-модификаторов. Именем клавиши является основной текст, изображаемый
*
на клавише. Допустимыми именами клавиш являются: "А", "7", "F2", "PageUp",
* "Left", "Backspace" и "Esc".
*
* Список имен находится в объекте Keymap.keyCodeToKeyName, внутри этого модуля.
* Они являются подмножеством имен, определяемых стандартом "DOM Level 3".
* Кроме того, этот класс будет использовать свойство key, когда оно будет реализовано.
*
* Идентификатор клавиши может также включать имена клавиш-модификаторов.
* Это имена Alt, Ctrl, Meta и Shift. Они нечувствительны к регистру символов и должны
* отделяться от имени клавиши и друг от друга пробелами или подчеркиваниями, дефисами
* или знаками +. Например: "SHIFT+A”, "Alt_F2", "meta-v" и "Ctrl alt left".
* В компьютерах Mac клавише Meta соответствует клавиша Command, а клавише Alt -
* клавиша Option. Некоторые броузеры отображают клавишу Windows в клавишу Meta.
*
* Функции-обработчики
*
* Обработчики вызываются как методы объекта document или элемента документа,
* в зависимости от того, куда был установлен объект Keymap, и им передаются
* два аргумента:
* 1) объект события keydown
* 2) идентификатор нажатой клавиши
* Значение, возвращаемое функцией, становится возвращаемым значением
* обработчика события keydown. Если функция-обработчик вернет false,
* объект Keymap прервет всплытие события и предотвратит выполнение любых
* действий по умолчанию, связанных с событием keydown.
*
* Ограничения
*
* Функцию-обработчик можно привязать не ко всем клавишам. Некоторые комбинации
Поделиться:
Популярные книги
Эммануэль
1. Эммануэль
Любовные романы:
эро литература
7.38
рейтинг книги
Неучтенный элемент. Том 11
11. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Двойник Короля 5
5. Двойник Короля
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Инженер Петра Великого 5
5. Инженер Петра Великого
Фантастика:
попаданцы
альтернативная история
фэнтези
4.75
рейтинг книги
Хозяин Стужи 8
8. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Гамбургский счет: Статьи – воспоминания – эссе (1914–1933)
Научно-образовательная:
история
5.00
рейтинг книги
Врубель
Жизнь в искусстве
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Ведун
1. Второй шанс
Фантастика:
фэнтези
боевая фантастика
альтернативная история
5.00
рейтинг книги
Телохранитель Генсека. Том 1
1. Медведев
Фантастика:
попаданцы
альтернативная история
7.00
рейтинг книги
Адвокат
1. Бандитский Петербург
Детективы:
боевики
8.00
рейтинг книги
Путь к бессмертию 1
1. Девятихвостый Богатырь
Фантастика:
попаданцы
сказочная фантастика
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 2
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Зодчий. Книга V
5. Зодчий Империи
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство 6
6. Ваше Сиятельство
Фантастика:
попаданцы
аниме
5.00