クロスブラウザでオンライン/オフラインイベントを検出する方法


  1. navigatorオブジェクトを使用する方法:

    function handleOnlineStatus(event) {
     if (navigator.onLine) {
       console.log("オンラインです");
     } else {
       console.log("オフラインです");
     }
    }
    window.addEventListener("online", handleOnlineStatus);
    window.addEventListener("offline", handleOnlineStatus);
  2. online/offlineイベントのサポートをチェックする方法:

    var isOnlineSupported = "onLine" in navigator;
    if (isOnlineSupported) {
     // イベントがサポートされている場合の処理
    } else {
     // イベントがサポートされていない場合の処理
    }
  3. XMLHttpRequestオブジェクトを使用する方法:

    function checkConnection() {
     var xhr = new XMLHttpRequest();
     xhr.onreadystatechange = function() {
       if (xhr.readyState === 4) {
         if (xhr.status === 200) {
           console.log("オンラインです");
         } else {
           console.log("オフラインです");
         }
       }
     };
     xhr.open("GET", "https://www.example.com", true);
     xhr.send();
    }
    checkConnection();
  4. Online/Offline APIを使用する方法:

    function handleOnlineStatus(event) {
     if (event.type === "online") {
       console.log("オンラインです");
     } else if (event.type === "offline") {
       console.log("オフラインです");
     }
    }
    var onlineStatus = new Event("online");
    var offlineStatus = new Event("offline");
    // オンライン状態にする
    window.dispatchEvent(onlineStatus);
    // オフライン状態にする
    window.dispatchEvent(offlineStatus);

これらの方法を使用すると、クロスブラウザでオンライン/オフラインイベントを検出できます。各方法は異なるアプローチを提供しているため、自分の要件に合った最適な方法を選択してください。