【问题标题】:Yepnope callback always returns 'result = false'Yepnope 回调总是返回 'result = false'
【发布时间】: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


【解决方案1】:

我也被这个问题难住了 - 事实证明,如果您的对象中没有测试条件(上面的示例没有),即

测试:Modernizr.geolocation,

结果将始终返回 false。这并不意味着脚本包含失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 2021-11-05
    • 2018-11-05
    • 2019-05-06
    • 2017-04-29
    • 2013-04-30
    相关资源
    最近更新 更多