1

我有一个在我的设备上本地运行的页面,我想使用 AJAX 或普通 JavaScript 来检查设备是否连接到 Internet以及特定站点是否已启动。

此外,我试图弄清楚如何通过 AJAX 计算 RSS 提要中的条目数,但我以前从未围绕 RSS 进行编程。不过,这并不是一个优先事项。

4

3 回答 3

3

与 Ajax 不同,脚本和图像的加载不受同源策略的约束,因此您可以跨域查询它们的存在(但不能读取它们的内容)。如果您知道站点上的特定图像,则可以使用onloada 的事件处理程序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非常适合跨站点支持,但如果您只想定位一个特定站点,只需在该站点上查找图像并查询其存在即可。

于 2012-08-06T19:36:33.843 回答
1

出于安全考虑,禁止跨站点 Ajax。一些变通方法是使用greasemonkey/userscripts(如果这只是供个人使用),或者使用flash或java之类的插件

于 2012-08-06T19:23:03.233 回答
0

有基本的支持

navigator.online
//Events
window.onOnline
window.onOffline

在桌面浏览器和 Android 上的支持。这可能无法完全回答您的问题,但我认为无论如何都值得分享:)

于 2012-08-06T19:54:56.403 回答