Попытка понять, как jQuery вычисляет вычисленные свойства для IE8, используя currentStyle

Я пытаюсь понять, как jQuery достигает значений пикселей для IE8 при работе со значениями свойств не на основе пикселей, таких как margin-top: 2emили даже что-то вроде height: auto, Для IE9+, getComputedStyle() может обеспечить это легко, но в случае IE8, currentStyle не. Я пытаюсь найти решение, чтобы я мог рассчитать общую высоту элемента, включая высоту CSS, отступы, границы и поля для всех браузеров IE8+. Я встретил следующий ответ, но я не могу понять, что происходит в принятом ответе.

Кросс-браузер (IE8-) getComputedStyle с Javascript?

Мне было интересно, если кто-нибудь может объяснить, что происходит в этом коде?

1 ответ

Вот пример для компьютерного стиля от WebPlatform.

if (!window.wpo) { window.wpo = {}; }
if (!wpo.utils) { wpo.utils = {}; }

wpo.utils.getComputedStyle = function(_elem, _style)
{// wpo getComputedStyle shim.
   var computedStyle;
   if (typeof _elem.currentStyle != 'undefined')
     { computedStyle = _elem.currentStyle; }
   else
     { try{computedStyle = document.defaultView.getComputedStyle(_elem, null);}catch(e){return '';} }

  return computedStyle[_style];
}

Другие вопросы по тегам