Я использую довольно неплохой плагин-заполнитель jQuery от Mathias Bynens для отображения заполнителей в моем сайте в браузерах, которые его изначально не поддерживают. Я вызываю плагин, используя пользовательскую версию Modernizr в нижнем колонтитуле страницы, сразу после кода Google Analytics. Я комбинирую его со скриптом (описанным в этом ответе о переполнении стека ) для отображения PNG в IE6.
Modernizr вызывается в шапке, и сайт также использует Typekit. jQuery вызывается только тогда, когда отсутствует функциональность заполнителя, поскольку в действительности она не нужна.
Соответствующий код, который я называю в нижнем колонтитуле блога WordPress, выглядит следующим образом:
1. Исправить PNG:
s.parentNode.insertBefore(g, s)
}(document, 'script'));
function fixPngs() {
for (i = 0; i 0) {
fixPng(a, document.images[i])
}
}
}
function fixPng(a, b) {
b.src = "http://cdn.donaldjenkins.com/media/themes/belgravia/2/spacer.gif";
b.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"
a "', sizingMethod='scale')"
};
2. Добавить заполнители:
Modernizr.load({
test: Modernizr.input.placeholder,
nope: ["http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", "http://cdn.donaldjenkins.com/wp-content/themes/belgravia/js/placeholder.js"],
complete: function () {
$('input, textarea').placeholder();
}
});
3. Вызов сценария PNG
fixPngs();
К сожалению, заполнитель отображается в IE6 и IE9, но не в IE7 или IE8. Я попытался настроить html сайт с песочницей , который реплицирует ресурсы, описанные выше, чтобы попытаться определить причину проблемы, но я получаю ту же проблему. Я пробовал другие плагины-заполнители, с тем же результатом.
EDIT :
После полезного ответа Матиаса Биненса и после проверки, работают ли плагины-заполнители jQuery без Modernizr, я пришел к выводу, что это проблема Modernizr: если плагин-заполнитель и jQuery загружаются систематически, без использования Modernizr, заполнители отображаются в все браузеры - при загрузке через Modernizr они отображаются в IE6 и 9, но не в IE 7 и 8.
Я пытался перейти с пользовательской версии Modernizr на версию для разработчиков, но результат остался прежним.