0

在我的 HTML5 网络应用程序中,我通过使用正文属性“online”和“onoffline”来更新在线状态,因此每次网络可用时,我都会通过调用函数“updateIndicator()”来更改状态(我在某处找到了代码片段) web 并且它部分工作),但是 Eclipse Kepler 说这两个属性都是未定义的。为什么会这样?这是我的代码片段:

<body onload="updateIndicator()" ononline="updateIndicator()" onoffline="updateIndicator()">
    <div data-role="page" id="startscreen">

        <div data-role="header" data-theme="b">
            DISPO   [ C:DisConnected,EventReset, M:x, R:<span id="indicator">(state unknown)</span>, G:<span id="GPSIndicator">(state unknown)</span> ]
        </div>
    </div>
</body>

这里的功能:

function updateIndicator(){
document.getElementById('indicator').innerHTML = navigator.onLine ? 'OK' : 'X';
document.getElementById('GPSIndicator').textContent = navigator.geolocation ? 'OK' : 'X';}

加载页面并且我在线后,“R”和“G”都显示“OK”,但是在我关闭 WLAN 后,没有任何反应,尽管我认为“R”和“G”应该显示“X”。难道我做错了什么?还是浏览器没有识别出 WLAN 已关闭?如果是这样,我应该如何实现?非常感谢大家!

4

1 回答 1

0

Eclipse Kepler 说这两个属性都是未定义的。为什么会这样?

很可能是因为 Eclipse Kepler 正在尝试验证 HTML4 或 XHTML,这有关系吗?

难道我做错了什么?

除了不遵循Unobtrusive JavaScript的原则,没有。

还是浏览器没有识别出 WLAN 已关闭?

可能,但没有任何 WLAN 与没有任何网络连接并不相同,拥有 WLAN 并不一定意味着您可以连接到对应用程序可能很重要的任何服务器。

如果是这样,我应该如何实现?

向服务器发送请求,看看它是否有效。您可能会发现“HTML5 / JS - 检查应用程序是否脱机”的答案以及博客文章“断开的脱机支持”很有用。

于 2013-11-07T16:40:53.160 回答