How to load local script files as fallback in cases where CDN are blocked/unavailable? [duplicate] How to load local script files as fallback in cases where CDN are blocked/unavailable? [duplicate] javascript javascript

How to load local script files as fallback in cases where CDN are blocked/unavailable? [duplicate]


To confirm that cdn script loaded you can check for existence any variable/function this script defines, if it is undefined - then cdn failed and you need to load local script copy.

On this principle are based solutions like that:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script><script>window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>')</script>

(if there is no window.jQuery property defined cdn script didn't loaded).

You may build your own solutions using this method. For instance, jquery tooltip plugin creates $.tooltip() function so we can check it with code like this:

<script>    if (typeof $.tooltip === 'undefined') {        document.write('<script src="js/libs/jquery.tooltip.min.js">\x3C/script>');    }</script>


I would have looked into a plugin like yepnopejs

yepnope([{  load: 'http:/­/ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js',  complete: function () {    if (!window.jQuery) {      yepnope('local/jquery.min.js');    }  }}]);

Takes an array of object to check for, check the documentation at the site


<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script><script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>

Taken from HTML5 Boilerplate.