通过Modernizer加载jQuery

通过Modernizer加载jQuery,jquery,modernizr,Jquery,Modernizr,刚刚开始一个新的HTML5项目并使用modernizr.js 我注意到在Modernizer docs页面上,它说您可以使用以下内容: Modernizr.load([ { load: '//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js', complete: function () { if ( !window.jQuery ) { Modernizr.load('js/libs

刚刚开始一个新的HTML5项目并使用modernizr.js

我注意到在Modernizer docs页面上,它说您可以使用以下内容:

Modernizr.load([
  {
    load: '//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js',
    complete: function () {
      if ( !window.jQuery ) {
            Modernizr.load('js/libs/jquery-1.6.1.min.js');
      }
    }
  }
]);
因此,在我的HTML中,我有以下内容:

<script src="scripts/modernizr-2.0.6.js"></script>
<script>
Modernizr.load([
    {
        load: 'https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js',
        complete: function () {
            if ( !window.jQuery ) {
                        Modernizr.load('scripts/jquery-1.6.1.min.js');
            }
        }
    }
]);
</script>

现代化负荷([
{
负载:'https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js',
完成:函数(){
如果(!window.jQuery){
load('scripts/jquery-1.6.1.min.js');
}
}
}
]);
但是看看firebug,没有加载jquery

我是不是漏掉了什么明显的东西

干杯,
Adi

Modernizer是一个小型库,它可以快速加载和执行,是的,它可以并行加载脚本,所以使用它是个好主意。关于您的错误,请从url中删除https:,然后像示例中那样尝试。

请在前面输入下面的代码

Modernizr.load([
                {
                    test: Modernizr.mq('(min-device-width: 320px) and (max-device-width: 728px)'),
                    yep : ['mob.css', 'jquery.mobile-1.1.0.css', 'jquery.mobile-1.1.0.js'],
                    nope : 'pc.css'
                }
            ]);

通过这种方式,您可以加载多个文件,如css、js,因为我遇到了相同的问题,Adi解决了这个问题。这就是为什么Modernizer.load对某些人不起作用的原因:


嗨,托伊达病毒。原来问题是开发版本没有使用加载程序。注释的顶部是“*Modernizr有一个可选(未包括)的条件资源加载器,名为Modernizr.load(),它基于Yepnope.js(yepnopejs.com)。要获得包含Modernizr.load()的构建,以及选择要包含的测试,请访问www.Modernizr.com/download/,从那里下载即可:)


你应该避免这种情况,你正在扼杀并行脚本下载并降低页面加载速度(当jq开始应用其样式时,页面会明显闪烁)。网站上说“modernizer.load不会降低任何速度,有时可以通过异步和并行加载脚本来提高性能。”?你认为,浏览器开始加载它在
标记中看到的所有内容,在Modernizer完成下载并执行脚本之前,您的脚本不会出现。@Blindy,您的逻辑已关闭<代码>标签不能并行下载,所以最坏的情况下,这只需要将它们作为
标签插入即可。@Adi,您在哪里签入Firebug?我的意思是,您只是在某处添加了一个
控制台.log
命令,还是在查看窗口属性?嗨,ToyDaVirus。原来问题是开发版本没有使用加载程序。注释的顶部是“*Modernizr有一个可选(未包括)的条件资源加载器,名为Modernizr.load(),它基于Yepnope.js(yepnopejs.com)。要获得包含Modernizr.load()的构建,以及选择要包含的测试,请访问www.Modernizr.com/download/,从那里下载即可:)哦!酷。所以没有生成自定义版本并下载。无论如何,干得好!