#javascript #css #asynchronous #modernizr #yepnope
#javascript #css #асинхронный #modernizr #yepnope
Вопрос:
Я пытаюсь загрузить динамически сгенерированную таблицу стилей шрифтов Google с помощью Modernizr (YepNope), но всегда получаю эту ошибку:
Неперехваченная синтаксическая ошибка: неожиданный недопустимый токен (css: 1)
Моя таблица стилей выглядит следующим образом:
http://fonts.googleapis.com/css?family=Holtwood One SC
и я вызываю это через
Modernizr.load({
load: ['css!http://fonts.googleapis.com/cssfamily=Holtwood One SC|Terminal Dosis:700'],
callback:
function (url, result, key) {
console.log('loaded...!');
}
});
На веб-сайте написано это, но по какой-то причине это просто не сработает. Я думаю, что ресурс анализируется как файл сценария, и именно это вызывает ошибку, но, похоже, не может заставить его работать = (
«С помощью css! префикс, вы можете добавить его к любому имени файла, и yepnope будет обрабатывать его как файл css «.
У кого-нибудь был успех в достижении чего-то подобного? Спасибо!
Ответ №1:
Убедитесь, что вы добавляете файл префикса css в свою копию yepnope. Он работает как плагин jQuery.
Вы можете получить его по адресу:
https://github.com/SlexAxton/yepnope.js/blob/master/prefixes/yepnope.css-prefix.js
Комментарии:
1. Большое спасибо за разъяснения! Кстати, отличная работа с загрузчиком =)
2. Есть ли способ интегрировать эти плагины (prefix css wait) в сборку Modernizr?
3. Если вы просто добавите их в конец файла modernizr, они будут работать как шарм. (для некоторого определения «очарования»)
Ответ №2:
Или вы можете вызвать API Google Webfont, например:
Modernizr.load({
load: 'http://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js',
complete: function () {
WebFont.load({
google: {
families: ['Open Sans:300,400,700']
}
});
}
});
В идеале также следует использовать резервный вариант no-js для загрузки шрифтов с вашего сервера с помощью функции синхронизации или другой, например:
if (!window.jQuery) {
Modernizr.load('http://d.clickmetrics.cl/assets/js/scaffolding/jquery-1.9.0.min.js');
}