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
的作用,我现在可以继续做我需要的事情了。我问的代码和问题与我所需要的完全不符,但你的输入帮助我摆脱了困境,所以无论如何我都接受你的答案。非常感谢,干杯