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

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

Жанры

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

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

// и вернуть управление,

if (!keyname) return;

// Канонический идентификатор клавиши состоит из имен модификаторов

// и имени клавиши в нижнем регистре

var keyid = modifiers + keyname.toLowerCase;

//
Проверить, имеется ли привязка для данного идентификатора клавиши

var handler = this.map[keyid];

if (handler) { // Если обработчик для данной клавиши, вызвать его

// Вызвать функцию-обработчик

var retval = handler.call(element, event, keyid);

// Если обработчик вернул false, отменить действия по умолчанию

// и прервать всплытие события

if (retval === false) {

if (event.stopPropagation)

event.stopPropagation; // модель DOM

else

event.cancelBubble = true; // модель IE

if (event.preventDefault)

event.preventDefault; // DOM

else

event.returnValue = false; // IE

}

// Вернуть значение, полученное от обработчика

return retval;

}

};

// Вспомогательная функция преобразования идентификатора клавиши в каноническую форму.

// Нам необходимо преобразовать идентификатор "meta” в "Ctrl", чтобы превратить

// идентификатор Meta-C в "Command-C" на компьютерах Маc и в "Ctrl-C" на всех остальных.

Keymap.normalize = function(keyid) {

keyid = keyid.toLowerCaseO; // В нижний регистр

var words = keyid.split(/\s+|[\-+_]/); // Вычленить модификаторы

var keyname = words.pop; // keyname -
последнее слово

keyname = Keymap.aliases[keyname] || keyname; // Это псевдоним?

words.sort; // Сортировать модификаторы

words.push(keyname); // Поместить обратно

// нормализованное имя

return words.join// Объединить все вместе

};

Keymap.aliases = { // Отображение привычных псевдонимов клавиш в их

"escape":"esc", // "официальные" имена, используемые в DOM Level 3,

"delete":"del", // и отображение кодов клавиш в имена ниже.

"return”:"enter", // Имя и значение должны состоять только из символов

"Ctrl":"control", // нижнего регистра.

"space":"spacebar",

"ins":"insert"

};

// Старое свойство keyCode объекта события keydown не стандартизовано

// Но следующие значения с успехом могут использоваться в большинстве броузеров и ОС.

Keymap.keyCodeToKeyName = {

// Клавиши со словами или стрелками на них

8:"Backspace", 9:"Tab", 13:"Enter", 16:"Shift", 17:"Control". 18:"Alt",

19:"Pause”, 20:"CapsLock", 27:"Esc", 32:"Spacebar", 33:"PageUp",

34:"PageDown", 35:"End", 36:"Home", 37:"Left", 38:"Up", 39:"Right",

40:"Down", 45:"Insert", 46:"Del",

// Цифровые клавиши на основной клавиатуре (не на дополнительной)

48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9".

// Буквенные клавиши. Обратите внимание, что здесь не различаются

// символы верхнего и нижнего регистров

65:"А", 66:"В", 67:"С". 68:"D". 69:"Е". 70:"F", 71:"G", 72:"Н". 73:"I",

74:"J", 75:"К", 76:"L”, 77:"М", 78:"N". 79:"О". 80:"Р", 81:"Q". 82:"R",

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

Метатель

Тарасов Ник
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
4.80
рейтинг книги
Метатель

Доктор. Заново

Афанасьев Семён
1. Доктор
Фантастика:
фэнтези
альтернативная история
5.86
рейтинг книги
Доктор. Заново

Имперец. Том 4

Романов Михаил Яковлевич
3. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Имперец. Том 4

Смерч войны

Робертс Эндрю
1. Историческая библиотека
Проза:
военная проза
5.00
рейтинг книги
Смерч войны

Справочник по лечению зависимостей

коллектив авторов 1
Справочная литература:
путеводители
5.00
рейтинг книги
Справочник по лечению зависимостей

Потомок бога 3

Решетов Евгений Валерьевич
3. Локки
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Потомок бога 3

Универсальный энциклопедический справочник

Исаева Елена Львовна
Справочная литература:
справочники
энциклопедии
5.00
рейтинг книги
Универсальный энциклопедический справочник

Неизвестные страницы истории российского флота

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

Избрание сочинения в трех томах. Том второй

Кочетов Всеволод Анисимович
Проза:
советская классическая проза
5.00
рейтинг книги
Избрание сочинения в трех томах. Том второй

Полная история государства Российского в одном томе

Карамзин Николай Михайлович
Научно-образовательная:
история
5.00
рейтинг книги
Полная история государства Российского в одном томе

Место под солнцем

Марклунд Лиза
Анника Бенгтзон
Детективы:
криминальные детективы
6.00
рейтинг книги
Место под солнцем

Очерки времен и событий из истории российских евреев. 1945 – 1970 гг. Книга 6

Кандель Феликс Соломонович
Научно-образовательная:
история
5.00
рейтинг книги
Очерки времен и событий из истории российских евреев. 1945 – 1970 гг. Книга 6

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

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

Глаза ночи

Бейн Диана
Любовные романы:
любовно-фантастические романы
эро литература
5.88
рейтинг книги
Глаза ночи