Я динамически добавляю
элементов в заголовок, как только DOM готова. Однако я получаю противоречивые результаты в IE8 и IE7 (все остальные браузеры в порядке).
Каждые несколько раз страница загружается (кэшированная или некэшированная) IE 7/8 будет удалять несколько правил CSS в таблицах стилей. 1 или 2 из моих динамических таблиц стилей не загружаются. Это всегда одни и те же 1 или 2 таблицы стилей, которые IE обычно игнорирует - , даже несмотря на то, что панель инструментов разработчика показывает их как добавленные в заголовок! .
Сами таблицы стилей отображаются как элементы
в окончательной модели DOM, но некоторые из их правил не применяются (хотя каждые несколько перезагрузок они применяются без каких-либо проблем ).
На моем месте у меня нет возможности писать код из
(ограничение CMS) - я могу вставлять только динамически из тела, что может быть проблемой.
ОБНОВЛЕНО: Это код, который я использую (расположенный в Как было предложено, даже когда я объединил все правила в одну таблицу стилей (которая Ненавижу это делать) IE 7/8 продолжает переключаться, как описано с некоторыми правилами, и страница выглядит иначе. В качестве дополнительной проверки я также удалил все Вы можете увидеть аномалии, посетив следующую страницу с IE8 и несколько раз обновив / щелкнув навигацию. Кажется совершенно случайным, когда IE8 отбрасывает эти стили. Однако на странице встроенного элемента управления все стили каждый раз загружаются правильно. https://www.eiseverywhere.com/ehome/index.php?eventid=31648&tabid=50283 Редактор CMS WYSIWYG преобразует все символы возврата каретки в пустые Я должен отметить, что внешние таблицы стилей здесь извлекаются из того же домена, но каждый раз, когда они загружаются повторно, для файла создается новый URL-адрес на основе MD5. Я не уверен, доступны ли предыдущие версии файла (или предыдущие файлы) по их предыдущим URL-адресам. Однако это не может быть проблемой, поскольку вновь созданная таблица стилей http://client.clevelanddesign.com/CD/IDG/CITE/home.html Какое из этих различий, по вашему мнению, может приводить к сбою в IE 7/8 стилей при загрузке на странице Live? Я лично подозреваю, что это либо проблема состояния гонки, либо PS: Я уже пробовал использовать функцию IE ОБНОВЛЕНИЕ - Скриншоты работы / не работы в IE8 IE8: код DOM при правильной загрузке:
IE8: код DOM, когда НЕ загружен правильно:
) для вставки таблиц стилей:
document.observe('dom:loaded', function() { // Using Prototype.js
// Add stylesheets
// addStylesheet('cite.css', 'head'); // Contains no webfont/@font-face rules
// addStylesheet('type.css', 'head'); // Contains webfont family name references*
// addStylesheet('flex.css', 'head'); // Responsive rules with @media queries
// addStylesheet('anm8.css', 'head'); // Some minor positional CSS for home page
// addStylesheet('gothic-cite.css', 'head'); // *Contains @font-face config
// addStylesheet('stag-cite.css', 'head'); // *Contains @font-face config
addStylesheet('all.css', 'head'); // Contains ALL content from above in 1 file
function addStylesheet(cssname, pos2)
{
var th2 = document.getElementsByTagName(pos2)[0];
var s2 = document.createElement('link');
s2.setAttribute('type', 'text/css');
s2.setAttribute('href', cssname);
s2.setAttribute('media', 'screen');
s2.setAttribute('rel', 'stylesheet');
th2.appendChild(s2);
}
});
@ font-face
и сослался на font-family: "webfont-name"
правила из таблиц стилей, и продолжил то же самое поведение. Следовательно, мы можем исключить проблему веб-шрифтов . Живая страница (с проблемами)
Prototype.js
загружается и инициализируется по умолчанию при загрузке страницы .js
файл анализируется при загрузке страницы body.innerHTML
CMS fluff-HTML только тем HTML, который я хочу, затем добавляет таблицы стилей в
. lte IE 8
плагины расширения CSS (selectivizr.js, html5.js и ie-media-query.js) загружаются в
с помощью условного Комментарии. Не уверен, ждут ли они DOM: loaded
...
теги , в результате в таких элементах, как
, содержащихся внутри сломанных тегов
, и дополнительные теги
, создаваемые там, где ожидается пробел. Только lt IE 8
, похоже, подавился этим, поэтому я добавил следующие правила CSS, чтобы исправить это: : not (.ie7) p {display: none; }
.ie7 p {display: inline; }
статья p {display: block! important; }
all.css
по-прежнему отбрасывает правила, которые были в файле с самого начала. Контрольная страница (работает безупречно)
при загрузке страницы - без динамической вставки lte IE 8
, плагины расширения CSS (selectivizr.js, html5) .js,и ie-media-query.js) инициализируются изначально. Перефразированный вопрос:
Prototype.js
и другие сценарии CMS все портят (к сожалению, удалить их со страницы невозможно). createStylsheet ()
, но безрезультатно.