【发布时间】:2011-03-01 20:19:12
【问题描述】:
在 Xul 中,我如何知道网络是否(断开)连接?
--更新
使用:
function observe(aSubject, aTopic, aState) {
if (aTopic == "network:offline-status-changed") {
write("STATUS CHANGED!");
}
}
var os = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
os.addObserver(observe, "network:offline-status-changed", false);
以及偏好:
pref("network.manage-offline-status", true);
它不起作用..有一个bug report here,但我认为它与它无关。
--
其实我认为不可能得到通知,因为即使在 Firefox 中我们也不会收到通知,如果用户想让浏览器知道它是“离线工作”,则需要手动标记离线..
--
Firefox“about:config”过滤“离线”字符串的屏幕截图,不幸的是,没有“network.manage-offline-status”:
【问题讨论】:
-
您是否尝试过将首选项配置为使用网络管理器,并查看这是否会使 Firefox 自动下线?
-
@Neil 看起来没有这样的属性,但我会用现有的“离线”属性检查行为..(见我的截图)
-
实际上首选项的名称最近更改了,但无论哪种方式,它都应该默认为 true。我已经注意到 nsIIOService2 上的 manageOfflineStatus 属性,您也可以查看它。
-
@Neil 是的,看起来答案是这样的。我找到了this code,但我没有成功使用它的方法。就像他一样
ioService.manageOfflineStatus = false;我做了@987654327 @,但我的应用仍然无法知道它是否下线.. -
这看起来像是将旧首选项移植到新的 nsIIOService2 属性的 Thunderbird 代码。不确定它是否真的与您的问题有关。
标签: javascript xul xulrunner