Попытка понять, как 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];
}