ブラウザの接続状態を返します。このプロパティは真偽値を返して true
はオンライン、false
はオフラインを表します。ブラウザのネットワーク接続状態が変化するたびに、プロパティを更新します。この更新はユーザがリンクをたどる、あるいはスクリプトがリモートページを要求するときに発生します。例えばインターネットへの接続が失われた後にユーザがリンクをクリックすると、このプロパティは false
を返します。
このプロパティの実装は、ブラウザにより異なります。
Chrome および Safari は、ブラウザがローカルエリアネットワーク (LAN) またはルータに接続できないときにオフライン、それ以外の状況では true
を返します。従って、false
値が返る場合はブラウザがオフラインであると考えることができますが、true
値は必ずインターネットにアクセスできると考えることはできません。仮想イーサネットアダプタを持つ仮想化ソフトウェアを実行しているコンピュータでは常に "接続中" になるなど、偽陽性になる可能性があります。よって、実際のブラウザのオンライン状態を検出したい場合は、付加的なチェック方法を開発するべきでしょう。詳しくは HTML5 Rocks の記事 Working Off the Grid をご覧ください。
Firefox および Internet Explorer は、ブラウザをオフラインモードに切り替えると false
値を送信します。Firefox 41 まで、他の状態では true
値を返していました。Firefox 41 より OS X および Windows で、実際のネットワーク接続状態に従って値を返します。
window.ononline
および window.onoffline
イベントをリッスンすることにより、ネットワーク接続状態の変化を確認できます。
構文
online = window.navigator.onLine;
値
online
には true
か false
の真偽値が返されます。
例
live example をご覧ください。
オンラインであるかを確認するには、以下のサンプルのように window.navigator.onLine
を確認します:
if (navigator.onLine) { console.log('online'); } else { console.log('offline'); }
ブラウザが navigator.onLine
をサポートしない場合は、上記のサンプルでは常に false
/undefined
が返ります。
ネットワーク接続状態の変化を確認するには、以下のように window.ononline
および window.onoffline
をリッスンするため addEventListener
を使用します:
window.addEventListener("offline", function(e) { console.log("offline"); }); window.addEventListener("online", function(e) { console.log("online"); });
仕様
仕様書 | 策定状況 | コメント |
---|---|---|
WHATWG HTML Living Standard navigator.onLine の定義 |
現行の標準 | 最初期の定義 |
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
基本サポート | (有)[1] | 3.5 (1.9.1)[2] 4.0 (2.0)[4] |
8[3] | 未サポート[2] | 5.0.4 |
WorkerNavigator でサポート |
Yes | 29 (29) | ? | ? | ? |
機能 | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile | BlackBerry |
---|---|---|---|---|---|---|
基本サポート | 2.2[5] | 1.0 (1.9.1)[2] | ? | ? | ? | 7 10 |
WorkerNavigator でサポート |
? | 29.0 (29) | ? | ? | ? | ? |
[1] 古いバージョンの Chrome は、最初にタブを開いたときに誤って true
を返しており、最初のネットワークイベントの後に正しい接続状態を返していました。Windows: 11、Mac: 14、Chrome OS: 13、Linux: 常に true
を返します。履歴については crbug.com/7469 をご覧ください。
[2] Firefox 4 以降および Opera 11.10 は、実際の接続状態に関わらず "オフライン作業" を無効化すると true
を、有効にすると false
を返します。
[3] Internet Explorer 8 の "online" および "offline" イベントは document.body
で発生します。IE 9 では document.body
および window
の両方で発生します。
[4] Firefox 41 より、OS X および Windows では "オフライン作業" モード (常に false
を返します) を選択しない限り、実際のネットワーク接続状態に従って値を返します。
[5] WebView コンポーネントでは欠陥があります。Issue 16760 をご覧ください。
注記
Firefox 3 で導入された新しいオフライン関連イベントと、このプロパティの詳しい説明は、Online/Offline Events を参照してください。