На странице с помощью JS в head страницы добавляются скрипты и стили. Добавление тега тривиальное - создается тег, к нему добавляются атрибуты, тег помещается в head и браузера загружает скрипт/стили и тут же всё это применяет. После загрузки каждого скрипта/стиля, загружается следующий и так далее. Это работает. На desktop-браузерах а-ля Chrome, Firefox, IE и на мобильных платформах (проверялось на Safari/Chrome iOS 8). Страница полностью заточена под разные виды устройств с разными размерами страницы, а так же предполагается её совместимость со всеми браузерами с поддержкой HTML5. Но, когда пришло время проверять работоспособность на старых устройствах начались проблемы. На iOS5.1 Safari и Chrome отказывают в работе скрипта. В логах, оказалось что браузеры останавливаются при попытке загрузить CSS. Я так понимаю какая-то проблема в добавлении нового атрибута в head? Или не срабатывает событие onreadystate? Скрипты погружаются абсолютно нормально этим же способом.
Я так понял, что в секции head прежде всего выполняется скрипт, подгружающий нужные css? Вероятно в "неработающих" браузерах DOM строится, когда дополнительные стили еще не подгрузились, а после подгрузки они не срабатывают. Что показывает исходный код страницы в этом случае? Почему бы вам не применить стили к нужным элементами средствами JS (jQuery) по событию ready?
djQuery: основной лаунчер и все дальнейшие события отрабатываются когда страница полностью загрузилась (в ином случае просто бы не имело бы смысла пользоваться JS-скриптом в виде лаунчера). А вот как выглядит исходный код - не знаю. Несколько проблематично вытащить его из мобильных браузеров :)