Internet Explorer浏览器版本用户代理的Javascript重定向?

Posted

技术标签:

【中文标题】Internet Explorer浏览器版本用户代理的Javascript重定向?【英文标题】:Javascript redirect for Internet Explorer browser version user agent? 【发布时间】:2011-11-16 10:57:16 【问题描述】:

我发现我的 javascript 密集型网站在 IE9 中无法可靠(或根本无法)运行。

它可以(通常但不总是)在标题中使用兼容模式元标记,但我只想构建一个我知道在 IE9 中可以正常工作的页面,然后在 IE9 时将通常的页面重定向到它被检测到。通常的页面在 IE 7 和 8(以及我尝试过的所有其他浏览器)中都很好。

谁能给我一些可以做到这一点的javascript?谢谢!

这是我常用的页面:

http://ianmartinphotography.com/test-site/test/

【问题讨论】:

您的网站在 Chrome 中出现 JavaScript 错误。你可能想检查一下。 找到了这个,但我想我更喜欢回顾浏览器功能检测。见:***.com/a/14835682/2140998 【参考方案1】:

最简单的方法是使用IE Conditionals。

注意: IE10 及更高版本有removed support 用于此功能。对于现代浏览器,出于兼容性目的有条件地显示内容的广泛接受的方式是使用feature detection。 Modernizr 是为处理特征检测而构建的流行库。

例如:

<!--[if IE 9]>
<script type="text/javascript">
    window.location = "http://www.ie9version.com";
</script>
<![endif]-->

来自条件站点的示例:

<!--[if IE]><p>You are using Internet Explorer.</p><![endif]-->
<![if !IE]><p>You are not using Internet Explorer.</p><![endif]>

<!--[if IE 7]><p>Welcome to Internet Explorer 7!</p><![endif]-->
<!--[if !(IE 7)]><p>You are not using version 7.</p><![endif]-->

<!--[if gte IE 7]><p>You are using IE 7 or greater.</p><![endif]-->
<!--[if (IE 5)]><p>You are using IE 5 (any version).</p><![endif]-->
<!--[if (gte IE 5.5)&(lt IE 7)]><p>You are using IE 5.5 or IE 6.</p><![endif]-->
<!--[if lt IE 5.5]><p>Please upgrade your version of Internet Explorer.</p><![endif]-->

<!--[if true]>You are using an <em>uplevel</em> browser.<![endif]-->
<![if false]>You are using a <em>downlevel</em> browser.<![endif]>

<!--[if true]><![if IE 7]><p>This nested comment is displayed in IE 7.</p><![endif]><![endif]-->

【讨论】:

也许是&lt;noscript&gt; 内的元重定向(或者只是元重定向;我不知道哪个更可靠) 好吧,这看起来很简单——如果我只想重定向 IE 的所有版本,那么我会有 吗?谢谢! 我刚刚更新了答案。它们需要被注释为条件 cmets。 而不是 . @Bengel,我可以重定向多个 IE 6、IE 7 和 IE 8 吗?那会是什么样子? 请注意这不适用于 IE 10。如果您需要解决方案,请查看此帖子:***.com/questions/19502040/…【参考方案2】:
<script LANGUAGE="JavaScript"> 
<!-- 

  if( navigator.appName.toLowerCase().indexOf("microsoft") > -1 || 
      navigator.userAgent.toLowerCase().indexOf("msie") > -1 )  
    window.open("http://www.pobox.com/~qed/windoze.html", "Windoze",
"dependent=no,titlebar=no,scrollbars=yes" ); 
   

// Paul Hsieh 
// qed at pobox dot com 
// --> 
</script>

来源:http://www.cexx.org/snicker/nomsie.htm

【讨论】:

以上是关于Internet Explorer浏览器版本用户代理的Javascript重定向?的主要内容,如果未能解决你的问题,请参考以下文章

iframe jQuery 不会在 Internet Explorer 中执行 [所有版本]

如果浏览器不是 Internet Explorer 9 或更高版本,则显示一条消息

安装程序无法继续,因为你的计算机上安装了更新的Internet Explorer版本。怎么弄

如何访问 Internet Explorer 的用户字体设置?

Internet Explorer 未能完成安装 安装程序无法继续,因为您的计算机上安装了更新的版本

安装IE浏览器时显示 “安装程序无法继续,因为您的计算机上安装了更新的Internet Explorer版本”怎么解决