一种测试基于IE7的浏览器是否在线的方法
A way to test if an IE7 based browser is online
我有一个带有嵌入式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
}
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- Recaptcha在IE7和IE8中不起作用
- 有时数据是't显示在浏览器中
- Javascript在IE7,8,9中返回控制台错误,但在所有其他浏览器中都能完美运行
- 为什么 ie7 在此代码上显示与其他浏览器不同
- 区分 IE7 浏览器和 IE7 兼容模式下的浏览器
- CSS 转换在 IE 8 和 IE7 浏览器中不起作用
- 多文件上传,支持所有浏览器,特别是ie7,ie8和ie9
- CSS3属性display:box/display:flexbox是否有交叉浏览器(IE7-8)支持的js文件
- 让hashchange事件在所有浏览器(包括IE7)中工作
- ie7、ie8和firefox3.6浏览器脚本错误
- Javascript(如何在IE7浏览器中检查Id是否存在)
- Page有两个脚本.可以在所有浏览器上运行.其中一个在IE7上失败
- 旧浏览器(IE8、IE7、IE6)上HTML5导航定时的替代方案
- jQuery:嵌套可排序项在良好的浏览器中工作得很好,但在IE7中,可排序子项和父项同时拖动
- 如何从IE7以外的所有浏览器中删除js文件?
- 一种测试基于IE7的浏览器是否在线的方法
- 在IE7浏览器jQuery v1.7.1中显示语法错误