Pull to refresh

IE8b1 — проверка поддержки generated content

Reading time2 min
Views492
Вот результаты проверки поддержки CSS2.1 generated content в IE8b1:
  1. если выставить генерируемому содержимому position: relative, у IE8b1 виснет текущий таб (отображается предложение запустить отладку в Visual Studio). Благодаря нововведению в IE8, гарантирующему перезапуск повисшего таба, он запускается заново, снова виснет и снова запускается заново. Бесконечный цикл.
    пример кода:
    p:before {content: "test"; position: relative;}


    testcase

    p.s. будьте аккуратны с testcase — он реально «вешает» IE8b1.


Если на странице нет хотя бы одного из элементов IMG/OBJECT/IFRAME или не установлена картинка в css-свойстве background-image, то IE8b1 создаёт генерируемое содержимое после window.onload!
примеры:
  1. Перечисленных элементов нет, генерируемое содержимое не создаётся браузером до тех пор, пока не нажата кнопка ОК, то есть после window.onload
  2. Генерируемое содержимое создаётся так, как должно быть — до window.onload в случаях, если:
    у элемента в CSS фоном задана картинка, на странице есть элемент IMG,
    OBJECT или IFRAME



IE8b1 отображает null вместо значения атрибута class при использовании следующего кода:
p { content: attr(class); }

для элемента p, у которого задано значение атрибута class.

Однако если записать правило следующим образом:
p { content: attr(className); }

Ie8b1 корректно отобразит значение атрибута class.

Пример


Я, конечно, могу только догадываться, но эти три бага наводят меня на мысль, что generated content в IE8b1 генерируется javascript'ом, скрытым от пользователя и выполняющимся по определённому событию. Во-первых, предложение отладки в случае зависания от css-правила; во-вторых, то, что generated content создаётся после window.onload при отсутствии внешних ресурсов (каким бы то ни было образом обозначенных в коде); в-третьих, то, что значение атрибута class считывается только с помощью его DOM-имени.

Определённо в IE8b1 есть какое-то событие, по которому код поддержки generated content запускается. Мне это показалось из-за бага #2 — ведь в случае, когда страница не ссылается на внешние данные, мы увидели создание генерируемого содержимого после window.onload, когда же внешние данные есть, генерируемое содержимое успевает создаться до того, как window.onload успевает запуститься.
Вот как было бы хорошо, если бы нам дали это событие в жаваскрипте, чтобы не приходилось для IE огород городить. Получилось бы полноценное DomContentLoaded :)
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 15: ↑13 and ↓2+11
Comments5

Articles