【问题标题】:Redirect site for ie10 [duplicate]ie10的重定向站点[重复]
【发布时间】:2024-04-21 01:10:02
【问题描述】:

我们只需要为 ie10 重定向一个站点 - 暂时同时尝试修复一个似乎只在 ie10 及以下版本中发生的奇怪 ajax 错误。

条件语句将是理想的 - 即 -

<!--[if lt IE 9]>
<script type="text/javascript">
    window.location = "/home/unsupported";
</script>
<![endif]-->

但我知道从 ie10 中删除了对条件的支持 - 有没有办法只重定向 ie10?

干杯

【问题讨论】:

  • 用JS检查浏览器是什么,因为你已经在使用JS进行重定向了。
  • 与其询问如何检测 IE10,不如询问实际问题的解决方案,因为它可能是基于不使用浏览器嗅探功能的特定解决方法。
  • @awe 他说这是临时重定向“临时性地尝试修复似乎仅在 ie10 及以下版本中发生的奇怪 ajax 错误。”

标签: javascript jquery internet-explorer internet-explorer-10 conditional-statements


【解决方案1】:

正如你提到的 IE 条件语句在 IE9 之后被丢弃: https://msdn.microsoft.com/en-us/library/hh801214%28v=vs.85%29.aspx

如果您依赖用户代理,使用 JS 检测 IE10 可能会很棘手,因此请参阅此示例以了解如何正确执行此操作: Check for IE 10

检测到 IE10 后,很容易在 JS 中进行重定向...

【讨论】:

  • 只是添加一些可能有帮助的东西 - IE 到 10 的版本在其用户代理字符串中具有“MSIE”。 IE11 没有。
  • 通常是这样,但我对 UserAgent 字符串的经验是,它们可能非常荒谬,如果您想在检测中非常精确,您就不能相信这些信息。
【解决方案2】:

您可以使用以下 java 脚本来检测浏览器及其版本。

var x = navigator.userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];

x 将是一个数组。X[1] 将包含浏览器,x[2] 将包含版本。

如果你想要一个帖子,你可以使用 window.location 或以下代码进行重定向..

<script type="text/javascript">
 var f = document.createElement("form");
 f.setAttribute("action", "/userSpace");
 f.setAttribute("method", "POST");
 document.body.appendChild(f);
 setTimeout(f.submit(),3000);
</script>

【讨论】: