我想加载带有本地回退的foundation.min.js的CDN版本。问题是:如何检测foundation.js是否已加载?
我看到它完成了jQuery,modernizr,Bootstrap ......但我找不到Foundation的代码。 除了“ window.Foundation ”部分之外,它应该看起来像这样:
<!-- jsDelivr CDN -->
<script src="//cdn.jsdelivr.net/foundation/4.3.1/js/foundation.min.js"></script>
<!-- Fallback to local -->
<script>window.Foundation || document.write('<script src="/js/vendor/foundation.min.js"><\/script>')</script>
答案 0 :(得分:6)
好的,事实证明我的原始代码实际上是正确的。 Foundation是实际的JavaScript对象,我在其他地方有一个错字。所以,总结一下......你可以从CDN加载foundation.min.js,并带有这样的本地回退:
<!-- jsDelivr CDN -->
<script src="//cdn.jsdelivr.net/foundation/4.3.1/js/foundation.min.js"></script>
<!-- Fallback to local -->
<script>window.Foundation || document.write('<script src="/js/vendor/foundation.min.js"><\/script>')</script>
如果有人有兴趣,我已经为所有Foundation所需文件创建了CDN /本地回退的要点: gist.github.com/kevinwake/6208601
答案 1 :(得分:1)
RequireJS可能是您的唯一选择。
来自http://requirejs.org/docs/api.html#pathsfallbacks
的第4.6.2和4.6.3节requirejs.config({
//To get timely, correct error triggers in IE, force a define/shim exports check.
enforceDefine: true,
paths: {
jquery: [
'http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min',
//If the CDN location fails, load from this location
'lib/jquery'
]
}
});
//Later
require(['jquery'], function ($) {
});
上面的代码将尝试CDN位置,但如果失败,则回退到本地lib / jquery.js位置。
祝你好运!