window.navigator.onLine

ブラウザの接続状態を返します。このプロパティは真偽値を返して 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 (en-US) および window.onoffline (en-US) イベントをリッスンすることにより、ネットワーク接続状態の変化を確認できます。

構文

online = window.navigator.onLine;

online には truefalse の真偽値が返されます。

live example をご覧ください。

オンラインであるかを確認するには、以下のサンプルのように window.navigator.onLine を確認します:

if (navigator.onLine) {
  console.log('online');
} else {
  console.log('offline');
}

ブラウザが navigator.onLine をサポートしない場合は、上記のサンプルでは常に false/undefined が返ります。

ネットワーク接続状態の変化を確認するには、以下のように window.online および window.offline をリッスンするため addEventListener を使用します:

window.addEventListener("offline", function(e) { console.log("offline"); });

window.addEventListener("online", function(e) { console.log("online"); });

仕様

仕様書 策定状況 コメント
HTML Living Standard
navigator.onLine の定義
現行の標準 最初期の定義

ブラウザ実装状況

No compatibility data found for api.NavigatorOnLine.onLine.
Check for problems with this page or contribute missing data to mdn/browser-compat-data.

注記

Firefox 3 で導入された新しいオフライン関連イベントと、このプロパティの詳しい説明は、Online/Offline Events‎ を参照してください。

関連情報