Javascript Modernizer何时加载脚本?

Javascript Modernizer何时加载脚本?,javascript,jquery,modernizr,Javascript,Jquery,Modernizr,我已经实现了以下代码: <script> var mod_PPfix = false; Modernizr.load({ test: Modernizr.csstransitions && Modernizr.input.required, nope: ['script1.js', 'script2.js'], complete: function () {

我已经实现了以下代码:

<script>
       var mod_PPfix = false;

        Modernizr.load({
            test: Modernizr.csstransitions && Modernizr.input.required,
            nope: ['script1.js', 'script2.js'],
            complete: function () {

                mod_PPfix = true;
                console.log('ppfix');
            }
        });
</script>

var mod_PPfix=false;
现代化负荷({
测试:Modernizer.csTranslation和&Modernizer.input.required,
否:['script1.js','script2.js'],
完成:函数(){
mod_PPfix=真;
console.log('ppfix');
}
});
几行之后,我放置了另一个脚本

<script>               
   if (!mod_PPfix) {
       $(document).ready(function() { 

           console.log('this should be seen only if modernizr's tests are true');
       });
   }
</script>

如果(!mod_PPfix){
$(文档).ready(函数(){
log('只有在Modernizer的测试为真时,才应该看到这一点');
});
}
现在我真的是javascript新手,但我希望从上面的代码中可以看到第二个
console.log()
,前提是Modernizer测试结果为真。即使测试结果为阴性,也会记录第二个日志

据我所知,在控制台中,第二条
console.log()
消息出现在第一条消息“ppfix”之前,因此我猜这应该是一种加载定时问题,但我真的不知道为什么。我做错了什么

如果有帮助的话,我将使用Jquery作为库


谢谢大家!

如果您想在测试为真时查看第二条日志消息,您的意思是
If(mod_PPfix)
?如果测试失败,您的版本将记录输出第二条消息(参见此)

当您使用Modernizr.load时,事情是异步发生的,因此第二个
可能在script1.js和script2.js完成加载之前运行,因此在
完成
回调触发之前运行。无论您想在第二次
中执行什么操作,都应该在
完成
回调中调用。比如说

    Modernizr.load({
        test: Modernizr.csstransitions && Modernizr.input.required,
        nope: ['script1.js', 'script2.js'],
        complete: function () {
            initialize_me();
        }
    });
其中,
initialize\u me()
函数将在其他地方定义,并且可能有类似的代码

if (Modernizr.csstransitions && Modernizr.input.required) {
    // Use CSS3
} else {
    // Do things that depended on script1.js and script2.js being loaded
}

你不是说如果(mod_PPfix)吗?我很抱歉这有点曲折,我知道,我的意思是“如果Modernizer验证这两项功能都没有实现,那么它将加载我列出的两个脚本并设置为mod_PPfix=true”。同样,仅当两者都不受支持时,加载脚本并执行完整的函数。如果功能结果受支持,那么他将什么也不做,不会加载脚本,也不会执行完整的功能。我发布的代码是否符合我的意思?无论你想在第二秒内做什么,都应该在完整的回调中调用。我真的是个新手,你到底是什么意思?谢谢你的回答!好了,现在我明白多了。实际上,无论测试通过还是失败,
complete
子句都会运行,不管测试是否完成。我用一个从
complete
调用init函数的示例编辑了我的答案。现在它有了意义。知道了
complete
的作用,我现在可以继续做我需要的事情了。我问的代码和问题与我所需要的完全不符,但你的输入帮助我摆脱了困境,所以无论如何我都接受你的答案。非常感谢,干杯