一种测试基于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
}
我有一个带有嵌入式 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
}