我正在使用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