次の JavaScript に CDN を使用しています。
- https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js
- https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/jquery-ui.min.js
- http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js
- http://ajax.aspnetcdn.com/ajax/jquery.validate/1.7/jquery.validate.min.js
それぞれについて、ブロックされているか使用できない可能性がある場合に、ローカル コピーの使用に戻すにはどうすればよいですか?
ベストアンサー1
cdn スクリプトがロードされたことを確認するには、このスクリプトが定義する変数/関数が存在するかどうかを確認します。未定義の場合は、cdn が失敗したため、ローカル スクリプトのコピーをロードする必要があります。
この原則に基づくソリューションは次のようになります。
<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>
(window.jQuery プロパティが定義されていない場合、cdn スクリプトは読み込まれませんでした)。
この方法を使用して独自のソリューションを構築できます。たとえば、jQuery ツールチップ プラグインは$.tooltip()
関数を作成するので、次のようなコードで確認できます。
<script>
if (typeof $.tooltip === 'undefined') {
document.write('<script src="js/libs/jquery.tooltip.min.js">\x3C/script>');
}
</script>