我有一个在我的设备上本地运行的页面,我想使用 AJAX 或普通 JavaScript 来检查设备是否连接到 Internet以及特定站点是否已启动。
此外,我试图弄清楚如何通过 AJAX 计算 RSS 提要中的条目数,但我以前从未围绕 RSS 进行编程。不过,这并不是一个优先事项。
我有一个在我的设备上本地运行的页面,我想使用 AJAX 或普通 JavaScript 来检查设备是否连接到 Internet以及特定站点是否已启动。
此外,我试图弄清楚如何通过 AJAX 计算 RSS 提要中的条目数,但我以前从未围绕 RSS 进行编程。不过,这并不是一个优先事项。
与 Ajax 不同,脚本和图像的加载不受同源策略的约束,因此您可以跨域查询它们的存在(但不能读取它们的内容)。如果您知道站点上的特定图像,则可以使用onload
a 的事件处理程序new Image
来测试站点是否已启动:
var i = new Image();
i.onload = function() { alert("site is up!") }
i.onerror = function() { alert("site is not up!") }
i.src = "/favicon.ico";
/favicon.ico
存在于大量主要站点上,因为它是旧版 IE 中的图标功能所必需的。并非 Web 上的每个站点都有它(事实上,并非 Web 上的每个站点都有 favicon),但它适用于 Google、Wikipedia、Stack Overflow 等主要站点。
/favicon.ico
非常适合跨站点支持,但如果您只想定位一个特定站点,只需在该站点上查找图像并查询其存在即可。
出于安全考虑,禁止跨站点 Ajax。一些变通方法是使用greasemonkey/userscripts(如果这只是供个人使用),或者使用flash或java之类的插件
有基本的支持
navigator.online
//Events
window.onOnline
window.onOffline
在桌面浏览器和 Android 上的支持。这可能无法完全回答您的问题,但我认为无论如何都值得分享:)