jQuery.support

« Обратно к странице инструментов

jQuery.support

Добавлено в jQuery 1.3 Коллекция свойств, которая показывает наличие различных особенностей или ошибок в браузере.

Много таких свойств низкоуровневые, поэтому вряд ли они будут полезны в ежедневной разработке, но все же большинство из них используются разработчиками ядра и дополнений.

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

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

Встроенные в jQuery.support тесты:

  • boxModel: устанавливается в true, если страница обрабатывается браузером в соответствие с моделью W3C CSS Box Model (в настоящий момент не поддерживается в IE 6 и 7, когда они в режиме Quirks Mode). Пока документ полностью не загружен, данное свойство имеет значение null.
  • cssFloat: устанавливается в true, если style.cssFloat используется для доступа к текущему значению CSS float (в настоящий момент не поддерживается в IE, там используется styleFloat).
  • hrefNormalized: устанавливается в true, если браузер оставляет нетронутыми результаты getAttribute(»href»)(в настоящий момент не поддерживается в IE).
  • htmlSerialize: устанавливается в true, если браузер правильно упорядочивает элементы ссылок, когда используются innerHTML (в настоящий момент не поддерживается в IE).
  • leadingWhitespace: устанавливается в true, если браузер сохраняет пустые места при использовании innerHTML (в настоящий момент не поддерживается в IE 6-8).
  • noCloneEvent: устанавливается в true, если браузер не клонирует обработчики событий, когда клонируются элементы (в настоящий момент не поддерживается в IE).
  • objectAll: устанавливается в true, если выполнение getElementsByTagName(»*») относительно объекта возвращает все дочерние элементы (в настоящий момент не поддерживается в IE 7 и IE 8).
  • opacity: устанавливается в true, если браузер правильно интерпретирует свойство видимости элемента (в настоящий момент не поддерживается в IE, там используются alpha-фильтры).
  • scriptEval: устанавливается в true, если при использовании appendChild/createTextNode для встраивания скриптов они исполняются (в настоящий момент не поддерживается в IE, там используется .text для встраивания исполняемых скриптов).
  • style: устанавливается в true, если функция getAttribute(»style») способна возвращать стиль, указанный элементом (в настоящий момент не поддерживается в IE – там используется cssText).
  • tbody: устанавливается в true, если браузер позволяет создание элементов таблицы без блоков tbody (в настоящий момент не поддерживается в IE, где блоки tbody вставляются автоматически, если их нету в строке, прикрепленной к innerHTML).
Примеры:

Проверяет свойство box model для фрейма.
    $("p").html("This frame uses the W3C box model: <span>" +
                jQuery.support.boxModel + "</span>");
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script>
  $(document).ready(function(){

    $("p").html("This frame uses the W3C box model: <span>" +
                jQuery.support.boxModel + "</span>");

  });
  </script>

  <style>
  p { color:blue; margin:20px; }
  span { color:red; }
  </style>
</head>
<body>
  <p>
  </p>

</body>
</html>
Возвращает false, если страница в режиме QuirksMode в Internet Explorer.
jQuery.support.boxModel
false
Name Type