Я применяю псевдоэлемент :after
к телу, отображающему имя моей точки останова медиа-запроса, например:
body::after {
content: 'medium';
display: none;
}
Причину этого можно найти здесь: http://adactio.com/journal/5429/.
Я хочу получить значение содержимого :after
, используя javascript в IE8.
Вот как я делаю это для других браузеров:
var breakpoint = window.getComputedStyle(document.body, ':after').getPropertyValue('content');
Но IE8 не поддерживает getComputedStyle()
, я знаю, что вместо этого он поддерживает currentStyle
, но после некоторых попыток я не смог правильно его использовать.
Это то, что я пытался безуспешно:
var breakpoint = document.body.currentStyle.getPropertyValue('content');
Кто-нибудь знает, как это сделать?
Редактировать: После примечания BoltClock я изменил свой css на это (одна точка с запятой):
body:after {
content: 'medium';
display: none;
}
До использования two контент даже не появлялся в IE8, поэтому ему нечего было возвращать. К сожалению, я до сих пор не могу заставить IE8 вернуть содержимое.
Я пытаюсь это:
if (style = document.body.currentStyle) {
for (var prop in style) {
if (prop === 'content') {
alert(prop);
}
}
}
Я ничего не получаю, но если я изменю 'content'
на какое-то другое свойство, например 'backgroundColor'
, это что-то предупредит. Поэтому я думаю, что хотя msdn перечисляет содержимое как одно из доступных свойств currentStyle
http://msdn.microsoft.com/en-us/library/ie/ms535231%28v=vs.85%29.aspx на самом деле не возвращает его, если я не делаю что-то еще не так.
::after
с двойным двоеточием. Если вам нужна поддержка IE8, используйте:after
. - person BoltClock   schedule 18.10.2012:after{}
не считается собственным стилем элемента. Есть ли шанс, что вы можете использовать что-то вродеdocument.styleSheets[0].cssRules
? - person Passerby   schedule 19.10.2012