【发布时间】:2012-02-15 00:51:28
【问题描述】:
这是代码,有一个定义本地的前缀!但就是这样。无论如何,回调中的第二个参数无论加载是否正确,总是为假。
window.jQuery 也总是返回 undefined,所以我不知道发生了什么
yepnope([
{
load: {
"style" : "css!<?php bloginfo('stylesheet_url'); ?>",
"fonts" : "timeout=4000!css!http://yui.yahooapis.com/2.9.0/build/fonts/fonts-min.css",
"jquery" : "timeout=4000!//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js",
"fbSDK" : "local!/js/FBsdk.js",
"detect" : "local!/js/detectDevice.js",
},
callback: {
"fonts": function() {
console.log(arguments);// the second argument is
}, // always false
"jquery": function() {
if ( !window.jQuery ) {
yepnope('local!/js/jQuery-1.7.js');
}
}
}
}
}
【问题讨论】:
-
抱歉,Marius,我做了一些测试,您的代码可以正常工作(jQuery 已加载并执行)。但是您对第二个论点是正确的,总是错误的。但是 yepnope doc 说“在这种情况下您可能想知道的另一件事是您的测试结果。幸运的是,这是第二个参数。[..]”。我发现未定义的 jQuery 的唯一方法是当我忘记我正在运行“file:///...html”时:-)。在一个项目中,当 Etags 被激活并收到 304 时,我注意到在 IE 和 FF 上,jQuery 在完整回调中未定义,但在之后执行(不使用 Chrome)。
标签: javascript asynchronous loader yepnope