2016-08-04 116 views
2

我有一個嵌入式IE 7瀏覽器的應用程序。我需要在靜態HTML頁面中測試,javascript是好的,用戶是否連接到Internet。一種測試基於IE7的瀏覽器是否在線的方法

Offline.js雖然優秀的圖書館不會在這裏工作,因爲JavaScript不支持。

window.navigator.onLine object.property不存在。

簡單地使用meta重定向不是一個選項,因爲如果互聯網不可訪問,我會離開用戶在當前頁面。邏輯應該看起來像這樣:

function UserIsOnlineTest(){ 
// needed code goes here 
// boolean return value 
} 

if (UserIsOnlineTest()) { 
    window.location.replace('http://theOnlineSite.com/'); 
} 

想法?


完整的解決方案,我結束了(基於@RobM。接聽)

(function(){ 

    var testImage= 'http://the.site.com/testimage.png'; 
    var image = new Image(); 
    var online = true; 
    image.src = testImage; 
    image.onerror = function() { 
     online = false; 
    } 

    setTimeout(function() { 
     if (online) { 
      window.location.replace('http://the.site.com/'); 
     },1000); 
    } 

}()); 

更定稿,我需要在測試中的錯誤添加延遲。由於這實際上是文件中唯一的代碼,因此它實際上是在下載圖像之前測試在線變量。

+0

是不是'navigator.onLine'? 。注意大寫L –

+0

也可能重複:http://stackoverflow.com/questions/189430/detect-that-the-internet-connection-is-offline –

+0

'window.navigator.online'仍然不可用,這不是一個重複,我明確需要爲IE7的答案。 – THBBFT

回答

1

如果你有,你知道應該在線的圖像,你可以創建一個圖像標記,並onerror表明該用戶離線:

var googleLogo = 'https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png'; 
var image = new Image(); 
image.src = googleLogo; 
image.onerror = function() { 
    // user is offline 
} 
+0

將XHR請求發送給*應該在線的東西是否更有效? –

+1

我無法從嵌入式IE7控件進行xhr請求。它錯誤地告訴我腳本不可訪問。 – THBBFT

+0

「高效」以什麼方式?我會想象(沒有什麼可以支持的)圖像請求中的開銷比XHR請求少,但如果有的話我會稱之爲折騰 –

相關問題