我是网络开发的初学者,我正在努力实现这一目标:
我有一个脚本,我希望它从我的主机在线加载。但是,如果没有互联网连接(脚本无法加载,即使以另一种方式),则回退以加载本地脚本。这可能吗?
我不介意解决方案,如果它是 jquery 或其他任何东西,我只想让它工作。
谢谢。
我是网络开发的初学者,我正在努力实现这一目标:
我有一个脚本,我希望它从我的主机在线加载。但是,如果没有互联网连接(脚本无法加载,即使以另一种方式),则回退以加载本地脚本。这可能吗?
我不介意解决方案,如果它是 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>
说明:
我们有一个在两秒后调用的回调,并检查由您的脚本引用的 onload-event 设置的变量。您可以在加载本地脚本的回调中执行代码。
这假设您可以在本地访问 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>