我是网络开发的初学者,我正在努力实现这一目标:
我有一个脚本,我想让它从我的主机在线加载。但是,如果没有互联网连接(脚本无法加载,甚至以其他方式加载),则回退加载本地脚本。这可能吗?
我不介意解决方案,如果它是jquery或其他任何东西,我只是喜欢它的工作。
感谢。
答案 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>