Я использую довольно хороший плагин-заполнитель jQuery Матиаса Биненса для отображения заполнителей в мой сайт в браузерах, которые не поддерживают его изначально. Я вызываю плагин с помощью специальной версии 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 сайт-песочницу, который воспроизводит ресурсы, описанные выше, чтобы попытаться определить причину проблемы. … Но у меня та же проблема. Я пробовал другие плагины-заполнители с тем же результатом.
РЕДАКТИРОВАТЬ: после полезного ответа Матиаса Биненса и проверки того, работают ли плагины jQuery-заполнителя без Modernizr, я пришел к выводу, что это проблема Modernizr: если плагин-заполнитель и jQuery загружены систематически, без использования Modernizr, заполнители отображаются во всех браузерах - при загрузке через Modernizr они отображаются в IE6 и 9, но не в IE 7 и 8.
Я пробовал переключиться с пользовательской версии Modernizr на версию для разработки, но результат остался прежним.