2016-08-04 8 views
2

У меня есть приложение со встроенным браузером IE 7. Мне нужно протестировать статическую HTML-страницу, javascript в порядке, имеет ли пользователь подключение к Интернету.Способ проверки, если браузер на основе IE7 находится в сети

Offline.js хотя отличная библиотека здесь не работает, потому что javascript не поддерживается.

window.navigator.onLine объект.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' по-прежнему недоступен, и это не duplicate, я явно нуждаюсь в ответе для 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

Я не могу сделать запрос xhr от встроенного элемента управления IE7. Ошибочно говорит, что сценарий недоступен. – THBBFT

+0

«эффективный», каким образом? Я бы предположил, что нет ничего лишнего в запросе на изображение, кроме запроса XHR, но если бы я его назвал, –