Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

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];

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

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

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// Объединить все вместе

  • Читать дальше
  • 1
  • ...
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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