0

我目前遇到客户 Intranet 的问题。我们曾经有一个起始站点,其中一些 js 会检查用户是否在线,如果在线,他会被重定向到我们的 Intranet 的主页。现在我正在测试与新 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 解决方案,因为没有可用的 JQ 库。我很想听到一个简单的 EDGE 工作解决方案。

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

谢谢!山姆

4

2 回答 2

0

对我来说完美的解决方案,因为我们只使用 Internet Explorer(至少有些使用 firefox,但 Opera 在任何客户端上都不可用):

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

感谢您的快速帮助!

于 2017-02-28T15:51:31.713 回答
0

以上评论值得考虑。这是一个杂物,而且总是很脆弱。正如评论中提到的,这里的一个主要缺陷是缓存。可以通过将缓存清除字符串附加到 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>

于 2017-02-28T15:30:39.170 回答