Javascript 仅当用户联机时重定向
我目前与客户内部网有问题。 我们曾经有一个起始站点,一些js会检查用户是否在线,如果在线,他会被重定向到我们内部网的主页。 现在,我正在测试与新的Microsoft EDGE的兼容性,发现自动重定向不再有效。 您是否知道如何检查用户是否有有效的internet连接,然后重定向 目前的解决办法是:Javascript 仅当用户联机时重定向,javascript,redirect,offline,start-page,Javascript,Redirect,Offline,Start Page,我目前与客户内部网有问题。 我们曾经有一个起始站点,一些js会检查用户是否在线,如果在线,他会被重定向到我们内部网的主页。 现在,我正在测试与新的Microsoft EDGE的兼容性,发现自动重定向不再有效。 您是否知道如何检查用户是否有有效的internet连接,然后重定向 目前的解决办法是: var myImg = new Image(); myImg.src = "https://URL_of_our_intranet/images/blank.gif"; myImg.on
var myImg = new Image();
myImg.src = "https://URL_of_our_intranet/images/blank.gif";
myImg.onload = myImgOnLoadHandler;
function myImgOnLoadHandler(e) {
window.location = "redirect-URL";
}
整个代码都在每个用户的本地系统上,没有JQuery解决方案,因为没有可用的JQ库。
我很想听到一个简单的和边缘的工作解决方案
如果有一个简单的方法可以做到这一点,请让我知道-我不是一个专业的Javascript
谢谢!
Sam上述评论值得考虑。这是一个乱七八糟的问题,而且总是很脆弱的。正如评论中提到的,这里的一个主要陷阱是缓存。这可以通过在URL中附加一个破坏缓存的字符串来避免。我认为情况并非如此,但也有可能某些浏览器不会加载不是DOM成员的图像,因此可能需要将其插入DOM。下面的代码段演示了这两个方面:
函数myImgOnLoadHandler(e){
log('Connected!redirecting…');
}
函数maybeRedirect(){
var myImg=新图像();
myImg.onload=myimgonloaddhandler;
myImg.src='//i.imgur.com/Jz49oEp.gif?'+new Date().getTime();
myImg.style.display='none';
文件.正文.附件(myImg);
}
document.querySelector('button')。addEventListener('click',maybeRedirect)代码>
单击我
这是一个非常适合我的解决方案,因为我们只使用Internet Explorer(至少有一些使用firefox,但Opera在任何客户端上都不可用):
谢谢你的快速帮助 DevTools控制台显示了什么?如果您不使用Opera:发出AJAX请求似乎比请求浏览器可能决定大量缓存的资产更有用…@deceze AJAX请求与重定向结合起来会是什么样子?+1到AJAX请求,您可以在服务器上执行一个操作,当hit返回@Code\u Sam时,可以查看一些
if (navigator.onLine) {
window.location.replace("https://www.google.de");
}