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

13.4.3. Проверка особенностей

13.4.3. Проверка особенностей

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

В следующих главах вы часто будете видеть, что та или иная особенность проверяется снова и снова. Например, в главе 17 приводится программный код, который выглядит, как показано ниже:

if (element.addEventListener) { // Проверить наличие метода W3C перед вызовом
  element.addEventListener(”keydown", handler, false);
  element.addEventListener("keypress", handler, false);
}
else if (element.attachEvent) { // Проверить наличие метода IE перед вызовом
  element.attachEvent("onkeydown", handler);
  element.attachEvent("onkeypress", handler);
}
else { // В противном случае использовать универсальный прием
  element.onkeydown = element.onkeypress = handler;
}

Самое главное, что дает проверка особенностей, - программный код, который не привязан к конкретным броузерам или их версиям. Этот прием работает со всеми броузерами, существующими ныне, и должен продолжить работать с будущими версиями броузеров независимо от того, какой набор особенностей они реализуют. Это означает, что производители броузеров должны определять свойства и методы, обладающие полной функциональностью. Если бы корпорация Microsoft определила метод addEventListener(), реализовав спецификации W3C лишь частично, это привело бы к нарушениям работоспособности большого числа сценариев, в которых перед вызовом addEventListener() реализован механизм проверки особенностей.

Оглавление книги


Генерация: 1.329. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз