0

我在我的 php 页面的 <head> 内容中包含以下内容:

<script>
    if ($.browser.msie && parseInt($.browser.version) < 10)
    {
      console.log('You need v10 of IE or greater to use this app');
      alert("You are using an outdated browser and will be redirected");
      window.location.href = 'error.php';
    }
</script>

我基本上希望每个使用 Microsoft Internet Explorer 9 或更低版本的访问者都转到 error.php 页面,该页面声明我希望他们安装版本 10。

我面临的问题是,除非我去开发人员部分并实例化模仿版本 7、8 和 9 的兼容性功能,然后它才能工作,否则这不起作用 - 只需使用它只是加载的旧版本访问我的网站启动并且不显示消息/重定向...

有没有人有任何想法或者是我的代码错了?感谢您的关注。

4

3 回答 3

4

您应该避免测试特定的浏览器,而是测试应用程序运行所需的特定功能。然后,如果他们没有这些功能,则向他们显示错误。

这可以防止您没有考虑到浏览器。

您可以使用Modernizr函数测试功能,如果该功能不存在,该功能将返回 false。

您可以使用该站点构建只测试您需要的功能的 Modernizr 版本。

- 编辑 -

我告诉你什么不该做,但没有告诉你为什么。在下面的评论中,Chris 提出了一个很好的观点——浏览器嗅探是不可靠的。您阅读了很多关于此的页面和页面,但当前的最佳实践说不要这样做:)

于 2013-05-16T13:19:39.713 回答
1

从您的代码中删除此行....

console.log('You need v10 of IE or greater to use this app');

console.log 与旧版 IE 不兼容...

于 2013-05-16T13:20:56.033 回答
0

您可以使用 HTML 条件。在你的身体里放这样的东西:

<!--[if lt IE 10]>
<script type="text/javascript">
    window.location = "http://yourbrowserisold.com";
</script>
<![endif]-->
于 2013-05-16T12:57:16.707 回答