阻止来自 Internet Explorer 或 Microsoft Edge 的访问者

Block visitors from internet explorer or microsoft edge

我需要一个 Javascript 脚本来阻止 Internet Explorer 或 Microsoft Edge 访问者以防止访问我在 Blogger 上的网站 编辑* 有人帮助我并使用 user-agent

回答了这个问题

每个访问网站的浏览器和应用程序都有一个叫做“用户代理”的东西。 UA 是 header 的一部分,即每个 HTTP 调用 sent/received。

由于访问您的网站只不过是发送 GET-request,您可以通过检查 header 和 re-route 用户中的用户代理来处理此问题告诉他们应该使用不同的浏览器。 或者,如果用户代理是 Edge 或 IE,您可以通过不显示任何元素来完全阻止访问。

这里有一个关于如何获取用户代理的例子:

https://www.w3schools.com/jsref/prop_nav_useragent.asp

如果你想要一个更好的例子,这也可以帮助:

https://docs.microsoft.com/en-us/microsoft-edge/web-platform/user-agent-guidance

TL;DR:您需要做的就是检查用户代理。您可以通过模式匹配或更简单地通过搜索字符串是否包含仅在 IE/Edge 浏览器中存在的内容来执行此操作,并采取相应的措施,例如通过 re-routing 或不 showing/hiding 所有元素。 (我会避免第二个建议,因为它对用户不友好)

首先,我不建议在您的网站上使用它。如果某些功能不支持此浏览器,您可以显示通知或弹出窗口,告诉用户切换浏览器以获得更好的实验。

但如果您认为这是更好的解决方案,您可以从此处检查此代码示例以检查用户浏览器:

 let userAgent = navigator.userAgent;
 let browserName;
 
 if(userAgent.match(/chrome|chromium|crios/i)){
     browserName = "chrome";
   }else if(userAgent.match(/firefox|fxios/i)){
     browserName = "firefox";
   }  else if(userAgent.match(/safari/i)){
     browserName = "safari";
   }else if(userAgent.match(/opr\//i)){
     browserName = "opera";
   } else if(userAgent.match(/edg/i)){
     browserName = "edge";
   }else{
     browserName="No browser detection";
   }
 
  document.querySelector("h1").innerText="You are using "+ browserName +" browser";         

这用于重定向到另一个页面:

window.location.replace("http://www.EXAMPLE.com");