Особенности используемого браузера

Материал из JQuery

Перейти к: навигация, поиск
$.support:object1.3

Переменная $.support содержит объект с информацией об особенностях текущего браузера. Зачастую, эта информация является более надежной, чем информация о типе браузера (в переменной $.browser).

Переменная $.support содержит следующие поля:

boxModel
Значение этого поля равно true, в случае, если браузер использует официальную блочную модель (W3C CSS Box Model). Значение false обычно бывает в браузерах Internet Explorer 6, 7, находящихся в режиме совместимости (Quirks Mode).
changeBubbles
Это поле принимает значение true, если используемый браузер обладает свойством передачи вверх по иерархии (делегирования) события типа change (требование W3C DOM event model). Значение false эта переменная принимает в браузерах Internet Explorer. Однако, начиная с версии 1.4, jQuery организует передачу события вверх по иерархии собственными средствами (переменная $.support.changeBubbles при этом будет по прежнему принимать значение false, поскольку делегирование события change осуществляет не браузер).
cssFloat
Это поле принимает значение true, если значение css-свойства float в используемом браузере доступно в переменной domObj.style.cssFloat, как это и должно быть (CSS Spec). Значение false характерно для браузеров Internet Explorer, в которых это свойство доступно в domObj.style.styleFloat
hrefNormalized
Это поле равно true, если значение атрибута href, полученное стандартным javascript-методом .getAttribute() не будет изменено (нормализовано) см. DOM l3 spec. Браузеры Internet Explorer обычно нормализуют значение атрибута href (если элемент содержит значение href="page.html", то при попытке его получить методом .getAttribute(), IE предварительно изменит его на полный вариант "httр://somedomen.ru/page.html"), в таком случае, поле hrefNormalized будет содержать значение false
htmlSerialize
Это поле будет обладать значением true, если используемый браузер производит сериализацию/вставку элементов <link> при работе со свойством .innerHTML, см. HTML5 wd. Значение false характерно для браузеров Internet Explorer.
leadingWhitespace
Is equal to true if the browser inserts content with .innerHTML exactly as provided—specifically, if leading whitespace characters are preserved. (It is currently false in IE 6-8). HTML5 wd (Если вы знаете о чем именно идет речь, пожалуйста опишите это в разделе обсуждение)
noCloneEvent

Это поле принимает значение true, если в текущем браузере при клонировании, клоны не будут обладать обработчиками, которые были привязаны к оригиналам. см. спецификацию DOM l2 spec. Как вы уже могли догадаться, не соответствует этому требованию браузеры Internet Explorer, в них значение поля noCloneEvent обычно равно false.

opacity

Значение этого свойства равно true, в случае, если браузер может правильно интерпретировать css-свойство opacity (уровень прозрачности). см. спецификацию CSS3 spec. Значение false характерно для Internet Explorer, который использует для изменения прозрачности так называемые альфа фильтры.

scriptEval()

Значение возвращенное этой функцией будет равно true, если в текущем браузере, при создании/добавлении новых элементов (такими методами как appendChild() или createTextNode()), содержащиеся внутри них скрипты, будут автоматически выполнены. см. спецификацию HTML5 WD. В очередной раз, значение false характерно для Internet Explorer, в котором для вставки исполняемых скриптов необходимо использовать свойство .text. Замечание: scriptEval() является методом начиная с jQuery-1.5.1. В более ранних версиях, вместо него было поле scriptEval, ранняя инициализация которого в некоторых случаях вызывала проблемы политики безопасности.

style

Значение этого свойства равно true, если в текущем браузере значение атрибута style можно получить обратившись к нему напрямую, например методом .getAttribute('style'). см. спецификацию DOM l2 Style spec. Значение false принимается в браузерах Internet Explorer, в которых можно получить требуемое значение в поле .cssText (т.е. .getAttribute('style').cssText).

submitBubbles
Это поле принимает значение true, если используемый браузер обладает свойством передачи вверх по иерархии (делегирования) события типа submit (отправка данных формы на сервер). см. требование W3C DOM event model). Значение false эта переменная принимает в браузерах Internet Explorer. Однако, начиная с версии 1.4, jQuery организует передачу события вверх по иерархии собственными средствами.
tbody
Равен true, если в текущем браузере, элемент <table> может существовать без элемента <tbody> внутри. Согласно официальным требованиям (HTML5 spec) наличие этого элемента необязательно. Если значение переменной равно false, то это означает, что при отсутствии элемента <tbody> внутри таблицы, браузер будет подставлять его сам. Так делают браузеры Internet Explorer при вставке нового содержимого средствами innerHTML.

Для примера покажем как узнать удовлетворяет ли блочная модель браузера официальным требованиям:

if($.support.boxModel)
{
  // действия для "хороших" браузеров
}

Ссылки

Поисковые ключи:
  • свойства используемого браузера
  • особенности используемого браузера
  • особенности браузер
  • возможности браузера
  • ошибки браузера
  • support
  • jQuery.support
  • $.support