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

时间:2016-08-04 20:29:43

标签: javascript internet-explorer-7

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

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

}());

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

1 个答案:

答案 0 :(得分: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
}