我有一个嵌入式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);
}
}());
更加完善,我需要在测试中添加延迟错误。由于这实际上是文件中唯一的代码,它实际上是在下载图像之前测试在线变量。
答案 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
}