0

私の HTML5 Web アプリでは、ボディ属性「ononline」と「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 - アプリケーションがオフラインであることを確認してください」への回答と、ブログ投稿「Broken Offline Support」が役立つでしょう。

于 2013-11-07T16:40:53.160 に答える