Sto utilizzando un CDN per caricare Bootstrap.css. La mia domanda è come posso controllare se il bootstrap CDN è stato caricato/trovato. E se non lo fosse, quindi caricare Boostrap locale.Modernizr Yepnope Css Fallback
Ecco Jquery ripiego ..
<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>
E questo è come mi caricare Modernizr di 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>
Non ho idea di come ho potuto verificare se il CSS è stato caricato .. proprio come ho fatto con Modernizr e jQuery ..
Grazie in anticipo ...
Una nota per testare questo: il CDN è molto veloce, e quel file è minimizzato, quindi carica molto velocemente. JSFiddle e CodePen mostra "caricato!" subito. Otterrai risultati migliori creando ed eseguendo un file HTML locale. – Madness
Questa è un'ottima risposta. È solo che usa un controllo personalizzato, quindi in questo senso si potrebbe anche usare un framework come [fallback.io] (http://fallback.io/). Ma dato che la risposta afferma chiaramente che non esiste una soluzione nativa con Modernizr, immagino che sia degna della taglia? – Izhaki
Sì, ho cercato di rimanere il più fedele possibile alla domanda originale, ma un sacco è cambiato dal 2013. Il grande YepNope una volta è ammortizzato. Modernizr sta rilasciando la prossima versione di conseguenza. Modernizr non ha ancora una soluzione nativa. Quindi sono partito dal presupposto che l'OP avrebbe comunque voluto utilizzare Modernizr, quindi sono andato con la soluzione di usare i controlli JS puri piuttosto che nella direzione di un'altra libreria. Ma io, per certo, non posso decidere se meritare la generosità, che è la comunità a decidere :) – Madness