我直接从yepnope主页上的示例中使用了代码:

  yepnope([{
    load: 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js',
    complete: function() {
      console.log('made it');
      if(!window.jQuery) { yepnope('/js/jquery.1.5.2-min.js'); }
    }
  }]);

今天我一直在没有互联网的情况下工作,我注意到我的jQuery本地版本尚未加载。

由于我没有连接到互联网,因此在上述示例中,我假设Google CDN版本无法加载,因此将调用complete函数来加载本地副本。看来complete根本没有被调用,因为我没有在控制台中看到“make it”。

另外,我检查了本地副本的路径是否正确。

最佳答案

根据您的评论和问题更新进行编辑:

您必须等待它超时。完整功能不会立即触发。我刚刚下载了yepnope.js并运行了他们的demo / index.html,并在他们的yepnope调用下面添加了以下代码,该代码在页面底部加载了jQuery:

yepnope({

  load     : "http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js",
  callback : function() { console.log("callback"); },
  complete : function() { console.log("complete"); }

});

显然,jQuery 1.6.2无法加载。大约10到15秒后,控制台中会同时显示“回调”和“完成”消息,因此我知道它们已被触发。

替代:

如果发现只需要此功能即可进行在线/离线开发,则可以尝试使用Html5Boilerplate所使用的功能(我已将其配置为:
<!-- Grab Google CDN's jQuery, with a protocol relative URL;
     fall back to local if necessary -->

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"
        type="text/javascript"></script>

<script type="text/javascript">
    window.jQuery || document.write('<script src="js/jquery-1.5.2.js">\x3C/script>')
</script>

这是我个人使用的:
    </form>

    <!-- Javascript at the bottom for fast page loading -->

    <!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary -->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript"> window.jQuery || document.write('<script src="js/jquery-1.5.2.js">\x3C/script>')</script>

    <!-- Grab Google CDN's jQuery UI, with a protocol relative URL; fall back to local if necessary -->
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js" type="text/javascript"></script>
    <script type="text/javascript"> $.ui || document.write('<script src="js/jquery-ui-1.8.4.custom.min.js">\x3C/script>')</script>

    <!-- Scripts concatenated and minified via ant build script-->
    <script src="js/plugins.js" type="text/javascript"></script>
    <script src="js/script.js" type="text/javascript"></script>
    <!-- End scripts -->

</body>
</html>

关于javascript - yepnope.js资源后备不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5757550/

10-09 23:58