Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

* используются самой операционной системой (например, Alt-F4). А некоторые комбинации

* могут перехватываться броузером (например, Ctrl-S). Эта реализация зависит

* от особенностей броузера, ОС и региональных настроек. Вы с успехом можете

* использовать функциональные клавиши и функциональные клавиши с модификаторами,

* а также алфавитно-цифровые
клавиши без модификаторов. Комбинации алфавитно-цифровых

* клавиш с модификаторами Ctrl и Alt менее надежны.

*

* Поддерживается большинство знаков препинания, кроме дефиса, для ввода которых

* не требуется удерживать клавишу Shift ('=[];',./\) на клавиатурах

* со стандартной раскладкой US. Но они плохо совместимы с другими

* раскладками клавиатур, и их желательно не использовать.

*/

// Функция-конструктор

function Keymap(bindings) {

this.map = {}; // Определить отображение идентификатор->обработчик

if (bindings) { // Скопировать в него начальную карту привязок

for(name in bindings) this.bind(name, bindings[name]);

}

}

// Связывает указанный идентификатор клавиши с указанной функцией-обработчиком

Keymap.prototype.bind = function(key, func) {

this.map[Keymap.normalize(key)] = func;

};

// Удаляет привязку для указанного идентификатора клавиши

Keymap
.prototype.unbind = function(key) {

delete this.map[Keymap.normalize(key)];

};

// Устанавливает этот объект Keymap в указанный HTML-элемент

Keymap.prototype.install = function(element) {

var
keymap
= this;

// Определить функции-обработчика события

function handler(event) { return keymap.dispatch(event, element); }

//
Установить ее

if (element.addEventListener)

element.addEventListener("keydown", handler, false);

else

if (element.attachEvent)

element.attachEvent("onkeydown", handler);

};

// Этот метод делегирует обработку события клавиатуры, опираясь на привязки.

Keymap.prototype.dispatch = function(event, element) {

// Изначально нет ни имен клавиш-модификаторов, ни имени клавиши

var modifiers = ""

var keyname = null;

// Сконструировать строки модификаторов в каноническом виде из символов

// в нижнем регистре, расположив их в алфавитном порядке.

if (event.altKey) modifiers += "alt_”;

if (event.ctrlKey) modifiers += "Ctrl,";

if (event.metaKey) modifiers += "meta_";

if (event.shiftKey) modifiers += "shift.”;

// Имя клавиши легко получить, если реализовано свойство key,

// определяемое стандартом DOM Level 3:

if (event.key) keyname = event.key;

// Для получения имен функциональных клавиш в Safari и Chrome можно

// использовать свойство keyldentifier

else

if (event. keyldentifier&&event. keyldentifier. substrings, 2) !== "U+")

keyname = event.keyldentifier;

// В противном случае можно использовать свойство keyCode и отображение код->имя ниже

else

keyname = Keymap.keyCodeToKeyName[event.keyCode];

Поделиться:
Популярные книги

Гвардия. (Дилогия)

Мусаниф Сергей Сергеевич
65. В одном томе
Фантастика:
научная фантастика
8.57
рейтинг книги
Гвардия. (Дилогия)

Я все еще царь. Книга XXXI

Дрейк Сириус
31. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я все еще царь. Книга XXXI

Латино-Иерусалимское королевство

Ришар Жан
История крестовых походов
Научно-образовательная:
история
6.25
рейтинг книги
Латино-Иерусалимское королевство

Академия

Сай Ярослав
2. Медорфенов
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.25
рейтинг книги
Академия

12

Санивский Сергей Анатолиевич
5.00
рейтинг книги
12

3ds Max 2008

Верстак Владимир
Видеосамоучитель
Компьютеры и Интернет:
программное обеспечение
5.00
рейтинг книги
3ds Max 2008

Неудержимый. Книга VI

Боярский Андрей
6. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга VI

Попала, или Кто кого

Юнина Наталья
Любовные романы:
современные любовные романы
5.88
рейтинг книги
Попала, или Кто кого

Управленческая элита. Как мы ее отбираем и готовим

Тарасов Владимир
Деловая литература:
управление, подбор персонала
5.00
рейтинг книги
Управленческая элита. Как мы ее отбираем и готовим

Том 14. Критические статьи, очерки, письма

Гюго Виктор
14. Собрание сочинений
Документальная литература:
критика
публицистика
5.00
рейтинг книги
Том 14. Критические статьи, очерки, письма

Философия и культура

Ильенков Эвальд Васильевич
Научно-образовательная:
философия
5.00
рейтинг книги
Философия и культура

В этом мире еще можно удивляться

Лейн МаККайла
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
В этом мире еще можно удивляться

Газлайтер. Том 18

Володин Григорий Григорьевич
18. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
6.80
рейтинг книги
Газлайтер. Том 18

Шум и ярость

Фолкнер Уильям Катберт
Проза:
классическая проза
8.36
рейтинг книги
Шум и ярость