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

A way to test if an IE7 based browser is online

本文关键字:IE7 浏览器 是否 方法 在线 一种 测试      更新时间:2023-09-26

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

尽管Offline.js是一个优秀的库,但它在这里不起作用,因为不支持javascript。

window.navigator.onLine对象属性不存在。

简单地使用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
}