仅在用户在线时重定向

时间:2017-02-28 14:58:43

标签: javascript redirect offline start-page

我目前遇到客户内联网问题。 我们曾经有一个起始站点,其中一些js检查,用户是否在线,如果是这样,他被重定向到我们的内联网的主页。 现在我正在测试与新的Microsoft EDGE的兼容性,并发现自动重定向不再起作用。 您对如何检查用户是否具有有效的互联网连接然后重定向有任何想法吗?

目前的解决方案是:

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-Solution可用,因为没有可用的JQ-Library。 我很想听到一个简单易用的EDGE工作解决方案。

如果有一个简单的方法,请告诉我 - 我不是Javascript的专业人士..

谢谢! 萨姆

2 个答案:

答案 0 :(得分:0)

以上评论值得考虑。这是一个kludge,总是很脆弱。正如评论中所提到的,这里的一个主要缺陷就是缓存。可以通过在URL中附加缓存消除字符串来规避这一点。我不认为是这种情况,但也有可能某些浏览器无法加载不是DOM的成员的图像,所以它可能必须将其插入DOM。以下代码段演示了两者:



function myImgOnLoadHandler(e) {
  console.log('Connected! redirecting...');
}

function maybeRedirect() {
  var myImg = new Image();
  myImg.onload = myImgOnLoadHandler;
  myImg.src = '//i.imgur.com/Jz49oEp.gif?' + new Date().getTime();
  myImg.style.display = 'none';
  document.body.appendChild(myImg);
}

document.querySelector('button').addEventListener('click', maybeRedirect);

<button type="button">Click me</button>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

完全适合我的解决方案,因为我们只使用Internet Explorer(至少有一些使用firefox,但Opera不能在任何客户端上使用):

if (navigator.onLine) {
    window.location.replace("https://www.google.de");
    } 

感谢您的快速帮助!