[解決済み] クロスブラウザでオンライン/オフラインのイベントを検出するには?
質問
HTML5のonlineとofflineのイベントを使って、ブラウザがオフラインになったことを正確に検出しようとしています。
以下は私のコードです。
<script>
// FIREFOX
$(window).bind("online", applicationBackOnline);
$(window).bind("offline", applicationOffline);
//IE
window.onload = function() {
document.body.ononline = IeConnectionEvent;
document.body.onoffline = IeConnectionEvent;
}
</script>
Firefox でも IE でも "Work offline" を押すだけでは問題なく動作するのですが、実際に線を抜くとなんだかランダムに動作するようになってしまいました。
この変更を検出する最良の方法は何でしょうか。私は、タイムアウトによる ajax 呼び出しの繰り返しを避けたいと思います。
どのように解決するのですか?
2011 年の現在、さまざまなブラウザ ベンダーが、オフラインをどのように定義するかについて合意できていません。一部のブラウザーは、ネットワーク アクセスの欠如とは別のものと考え、ワーク オフライン機能を備えていますが、これもインターネット アクセスとは別のものです。全体が混乱しているのです。一部のブラウザ ベンダーは、実際のネットワーク アクセスが失われたときに navigator.onLine フラグを更新しますが、更新しないベンダーもあります。
仕様書から
ユーザエージェントが 確実にオフライン(ネットワークから切り離されている を返します。) ユーザエージェントがオンラインである可能性がある場合、trueを返します。 がオンラインである可能性がある場合は
オンラインとオフラインのイベントは この属性の値が変化したときに発生します。 が変更されたときに発生します。
navigator.onLine属性は は、ユーザーエージェントが ネットワークに接続しない場合 リンクをたどるとき、またはスクリプトが がリモートページを要求したとき (またはそのような試みが失敗することを知っているとき) そのような試みは失敗すると知っている)、そして、そうでなければ それ以外の場合は真を返さなければなりません。
最後に、仕様書の注釈です。
この属性は本質的に 信頼性がありません。コンピュータは ネットワークに接続することができます。 インターネットに接続することができます。
関連
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
[解決済み] Safari、Chrome、IE、Firefox、Operaのブラウザを検出する方法は?
-
[解決済み] ブラウザのビューポート寸法を取得する方法を教えてください。
-
[解決済み] jQueryを使用してキーボードのEnterキーを押したことを検出する方法は?
-
[解決済み] JavaScript / jQuery のイベントバインディングを Firebug などでデバッグするには?
-
[解決済み】インターネット接続がオフラインになったことを検出しますか?
-
[解決済み】ブラウザの戻るボタンのイベントを検出する方法 - クロスブラウザ編
-
[解決済み] [ピュアJSやjQueryでエスケープキー押下を検出するには?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】インターネット接続がオフラインになったことを検出しますか?
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] javascriptで文字列から関数を作成する方法はありますか?
-
[解決済み] CORS: 認証モードは 'include' です。