私はWeb開発の初心者で、これを達成しようとしています:
スクリプトがあり、ホストからオンラインでロードする必要があります。ただし、インターネット接続がない場合 (別の方法でもスクリプトの読み込みに失敗する場合)、フォールバックしてローカル スクリプトを読み込みます。これは可能ですか?
解決策は気にしません。それがjqueryか何かである場合は、それを機能させたいだけです。
ありがとう。
私はWeb開発の初心者で、これを達成しようとしています:
スクリプトがあり、ホストからオンラインでロードする必要があります。ただし、インターネット接続がない場合 (別の方法でもスクリプトの読み込みに失敗する場合)、フォールバックしてローカル スクリプトを読み込みます。これは可能ですか?
解決策は気にしません。それがjqueryか何かである場合は、それを機能させたいだけです。
ありがとう。
<script>
var jsLoaded = false;
setTimeout("callback()", 2000);
function callback(){
if (!jsLoaded) {
//Do ur stuff means call your local javascript....
}
}
</script>
<script type="text/javascript" src="//assets.zendesk.com/external/zenbox/v2.5/zenbox.js" id="popup" onload="jsLoaded=true"></script>
説明:
2 秒後に呼び出され、スクリプト参照の onload イベントによって設定された変数をチェックするコールバックがあります。ローカル スクリプトをロードするコールバックでコードを実行できます。
これは、ローカルで jQuery にアクセスできることを前提としています。
さて、jQuery/Ajax を介してリモート ホストからスクリプトをロードすることを「試みる」ことをお勧めします。これを行うのに役立つツールがいくつかあると思います。次に、応答コードを確認します... 200 は「OK」だと思います。「OK」でない場合は、ローカル バージョンのロードに進みます。
<script>
$('body').getScript('<yourremotehostaddress>').fail(function(jqxhr, settings, exception) {
// Load your local script here.
});
</script>
お役に立てれば :)
また、上記のコメントからの解決策: リモート ホストからスクリプトをロードし、試行後にスクリプトに含まれるオブジェクトにアクセスしようとすることができます。
更新: 最初の投稿で申し訳ありませんが、 getScript() に渡されたハンドラーは、リクエストが成功した場合にのみ呼び出されることに気付きませんでした。失敗を確認したい。
もしかして、こんなこと…?
<script type="text/javascript" src="//cod.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
if(!window.jQuery) {
document.write("<script type=\"text/javascript\" src=\"path/to/local/jquery.js\"><\/script>");
}
</script>