一种测试基于IE7的浏览器是否在线的方法

A way to test if an IE7 based browser is online

我有一个带有嵌入式 IE 7 浏览器的应用程序。我需要在静态HTML页面中测试,javascript可以,用户是否有连接到互联网。

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.answer)

(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);
    }

}());

更确定的是,我需要在错误测试中添加延迟。由于这是文件中实际上唯一的代码,它实际上是在下载图像之前测试在线变量。

如果您知道应该在线的图像,您可以创建一个图像标签并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
}