2014-03-31 13 views
-1

我正在編寫一個Web應用程序,並且我構建了一個腳本來告訴用戶他們需要聯機。我正在使用JavaScript和JQuery。這是行不通的。 :(這是我有:使用JavaScript和JQuery聯機檢測

var online = navigator.onLine; 
$(document).ready(function() { 
    if (online == 'false') { 
     $('#wifiwarning').fadeToggle("fast"); 
    }; 
}); 
+2

我想'如果(在線== '假'){'失敗... –

+0

豈不很清晰'網絡應用程序'暗示他們'在網絡上'? –

回答

2

它出現navigator.onLine返回一個布爾值,但您正在檢查一個字符串。

相反的:

if (online == 'false') 

你需要使用:

if (online == false) 
+0

謝謝@DA。這工作完美... :) – Nate

0

你需要重複檢查以規則的間隔一樣,在你的情況你只有一次頁面加載時檢查狀態,之後的任何更改在線狀態沒有檢測和反應。

$(document).ready(function() { 
    var $el = $('#wifiwarning'), 
     visible = $el.is(':visible'); 
    //execute it every 5 seconds 
    setInterval(function() { 
     if (navigator.onLine && visible) { 
      $el.fadeOut("fast"); 
      visible = !visible; 
     } else if (!navigator.onLine && !visible) { 
      $el.fadeIn("fast"); 
      visible = !visible; 
     } 
    }, 5000) 
}); 
+0

任何理由都不會在'online'和'offline'事件上用'addEventListener'實現嗎? – Amadan

+0

@Amadan以前沒有使用過......如果你對它有個想法,將它作爲答案......然後我將刪除我的答案 –

+0

我還沒有使用過它們,我只知道它們在那裏(https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine.onLine的底部),所以這是一個誠實的問題,認爲你知道我不認爲這是一個壞主意。 – Amadan

1

我覺得if (online == 'false') { condtion失敗。

使用

var online = navigator.onLine; 
$(document).ready(function() { 
    if (online) { 
     $('#wifiwarning').fadeToggle("fast"); 
    }; 
});