实际上你根本就不需要jQuery。 HTML5本身为在线/离线条件下运行的应用程序提供了一个整洁的工具 - cache manifest。缓存清单是<html>
标签的manifest
属性引用一个纯文本文件:
<html manifest="cache.manifest">
这个清单文件的内容告诉浏览器,哪些资源需要联机条件函数(NETWORK
),该文件缓存( CACHE
)以及在离线时请求网络资源时如何处理(FALLBACK
)。
CACHE MANIFEST
# the above line is required
NETWORK:
*
FALLBACK:
* error404.html
CACHE:
index.html
about.html
help.html
# Plus all other resources required to make it look nice
style/default.css
images/logo.png
images/backgound.png
使用清单,浏览器首先查阅清单,并没有任何脚本,据此行为根据是在线还是离线。
http://dev.w3.org/html5/spec-preview/offline.html#manifests
UPDATE:
请注意,响应内容类型的关键要求。纯文本根本不起作用。
必须使用text/cache-manifest
MIME类型来提供清单。
http://dev.w3.org/html5/spec-preview/offline.html#writing-cache-manifests
另外要注意,在清单中未列出的所有URL被从负载封锁作为结果。这就是为什么我通过通配符(*
)修复了上述清单以允许“其余”。这可能会帮助你开始。
我按照您指定的方式尝试;警告在if/else中。如果按我的预期完美工作,当我禁用我的网络连接来测试其他时,它会失败并仍然显示if语句中显示的内容。 – Brendan 2012-03-02 01:18:27
这不是傻瓜证明,它从浏览器获取数据。 – Bot 2012-03-02 01:26:24
它只是显示您是否处于“离线”模式,我正在寻找一种方法来实际检查您是否可以访问互联网。 – Akbari 2016-10-27 06:21:07