CDN がブロックされている/利用できない場合に、フォールバックとしてローカル スクリプト ファイルをロードするにはどうすればよいでしょうか? [重複] 質問する

CDN がブロックされている/利用できない場合に、フォールバックとしてローカル スクリプト ファイルをロードするにはどうすればよいでしょうか? [重複] 質問する

次の JavaScript に CDN を使用しています。

それぞれについて、ブロックされているか使用できない可能性がある場合に、ローカル コピーの使用に戻すにはどうすればよいですか?

ベストアンサー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>

おすすめ記事