Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅当用户联机时重定向_Javascript_Redirect_Offline_Start Page - Fatal编程技术网

Javascript 仅当用户联机时重定向

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

我目前与客户内部网有问题。 我们曾经有一个起始站点,一些js会检查用户是否在线,如果在线,他会被重定向到我们内部网的主页。 现在,我正在测试与新的Microsoft EDGE的兼容性,发现自动重定向不再有效。 您是否知道如何检查用户是否有有效的internet连接,然后重定向

目前的解决办法是:

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");
    }