2

我正在尝试使用 Modernizr (YepNope) 加载动态生成的 Google 字体样式表,但总是出现此错误:

未捕获的语法错误:意外的令牌非法 (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 文件。”

有人成功实现了类似的目标吗?谢谢!

4

2 回答 2

6

确保将 css 前缀文件添加到 yepnope 的副本中。它就像一个 jQuery 插件。

你可以在:

https://github.com/SlexAxton/yepnope.js/blob/master/prefixes/yepnope.css-prefix.js

于 2011-10-07T04:47:41.547 回答
0

或者,您可以调用 Google Webfont API,例如:

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');
}
于 2013-06-06T20:13:03.660 回答