我正在使用CDN加载Bootstrap.css。 我的问题是我如何检查CDN引导程序是否被加载/找到。 如果不是,则加载本地Boostrap。Modernizr Yepnope Css Fallback
这里是jQuery的后备..
<script type="text/javascript">
Modernizr.load([
{
load: '//cdnjs.cloudflare.com/ajax/libs/jquery/1.10.1/jquery.min.js',
complete: function() {
if (!window.jQuery) {
Modernizr.load([
{
load: config.js + 'vendor/jquery-1.10.1.min.js',
complete: function() {
console.log("Local jquery-1.10.1.min.js loaded !");
}
}
]);
} else {
console.log("CDN jquery-1.10.1.min.js loaded !");
}
}
}
]);
</script>
这也是我如何加载Modernizr的比定制CSS:
<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
<script type="text/javascript">
if (typeof Modernizr == 'undefined') {
document.write(unescape("%3Cscript src='" + config.js + "/vendor/modernizr-2.6.2-respond-1.1.0.min.js' type='text/javascript'%3E%3C/script%3E"));
console.log("Local Modernizer loaded !");
}
</script>
<script type="text/javascript">
Modernizr.load([
{
load: config.css + "bootstrap.css",
complete: function() {
console.log("bootstrap.css loaded !");
}
},
{
load: config.css + "responsive.css",
complete: function() {
console.log("responsive.css loaded !");
}
},
{
load: config.css + "icons.css",
complete: function() {
console.log("Fontello icons.css loaded !");
}
},
{
load: config.css + "icons-ie7.css",
complete: function() {
console.log("Fontello icons-ie7.css loaded !");
}
},
{
load: config.css + "animation.css",
complete: function() {
console.log("Fontello animation.css loaded !");
}
}
]);
</script>
我不知道,如果CSS加载我如何能检查..就像我做了Modernizr的和jQuery ..提前
谢谢...
用于测试的注释:CDN速度非常快,并且该文件被缩小,因此加载速度非常快。 JSFiddle&CodePen显示“已加载!”马上。您将获得更好的结果并运行本地HTML文件。 – Madness
这是一个很好的答案。这只是它使用自定义检查,所以在这方面人们可以使用像[fallback.io](http://fallback.io/)这样的框架。但鉴于答案明确指出Modernizr没有本地解决方案,我猜这值得赏金? – Izhaki
是的,我尽量保持原始问题的真实性,但自2013年以来已经有所改变。曾经很棒的YepNope被贬值。 Modernizr正在下一个发布中放弃它。 Modernizr仍然没有本地解决方案。所以我假设OP仍然想使用Modernizr,所以我使用纯JS检查的解决方案,而不是朝着另一个库的方向前进。但我肯定不能决定我是否值得赏金,那是社区决定的:) – Madness