如何加载在线脚本,如果没有互联网连接,则回退加载本地脚本?

时间:2013-03-26 22:10:22

标签: jquery

我是网络开发的初学者,我正在努力实现这一目标:

我有一个脚本,我想让它从我的主机在线加载。但是,如果没有互联网连接(脚本无法加载,甚至以其他方式加载),则回退加载本地脚本。这可能吗?

我不介意解决方案,如果它是jquery或其他任何东西,我只是喜欢它的工作。

感谢。

3 个答案:

答案 0 :(得分:3)

<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>

说明:
我们有一个在两秒后调用的回调,并检查由脚本引用的onload事件设置的变量。您可以在加载本地脚本的回调中执行代码。

答案 1 :(得分:0)

这假设您可以在本地访问jQuery。

好吧,我建议你“尝试”通过jQuery / Ajax从远程主机加载脚本,我认为他们有一些工具可以帮助你做到这一点。然后检查响应代码......我认为200是“OK”,如果它不是“OK”,则继续加载本地版本。

<script>
$('body').getScript('<yourremotehostaddress>').fail(function(jqxhr, settings, exception) {

       // Load your local script here.

});
</script>

希望这会有所帮助:)

同样是上述评论的解决方案:您可以尝试从远程主机加载脚本,并在尝试访问脚本中包含的对象后尝试。假设有一个。

更新:对于初始帖子很抱歉,我没有意识到传递给getScript()的处理程序只有在请求成功时才会被调用。我们想检查失败。

答案 2 :(得分:0)

这样的事可能......?

<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>