Answers:
限制浏览器对网站的访问非常困难,因为没有100%可靠的方法可以做到这一点。
您的第一个问题是用户代理欺骗。浏览器可以使用他们想要的任何用户代理来标识自己。带有扩展名的浏览器似乎都可以做到这一点。如果使用IE6或IE7的用户将其用户代理更改为IE8或Firefox 的用户代理,他们将进入网站。
您可以使用JavaScript通过功能检测来解决该问题。基本上,您使用JavaScript进行了简单的测试:检查是否存在IE6或IE7中不存在的功能。如果不是,您知道是他们。这样做的问题是,如果他们关闭JavaScript,他们会轻易地绕过它。
多层方法是使用用户代理(最好是在Apache或IIS中)使用用户代理在服务器端进行浏览器嗅探,然后将这些用户重定向到告诉他们您不支持其浏览器的页面。顺便说一句,这比简单地隐藏网站更具礼貌。我将使用JavaScript功能检测方法来对此进行补充。在这两个用户之间,您将抓住除技术最精明的用户以外的所有用户,而且很可能他们仍然没有使用IE6或IE7。
有条件的CSS注释或使用JQUERY浏览器检测:
使用这些,您可以设置样式,例如隐藏普通内容的div和显示替代内容的div。或者使用JS更改内容及其显示方式。
如果您只想删除IE6用户的所有内容,并向他们显示一条消息告诉他们进行更新,则可以将CSS设置为将所有内容隐藏在正文中,并通过jquery检测引发警告加载。这很苛刻,但只要他们不打算偷偷摸摸或绕开它,大多数情况下都应该起作用。在这种情况下,他们可能不是您所针对的人。
在页面HTML源代码中添加这些类型的HTML条件注释
<!--[if IE 6]>
<h1>Hello, u r using IE6, your message here</h1>
<![endif]-->
<!--[if IE 7]>
<h1>Hello, u r using IE7, your message here</h1>
<![endif]-->
<!--[if lt IE 8]>
<h1>Hello you are using a version of IE less than IE8, your message here</h1>
<![endif]-->
除IE会解析所有内容并相应地表现出来之外,所有其他浏览器都将像普通HTML注释一样跳过以上所有内容。
您将显示不同内容的原因是您使用HTML5的原因,它与IE7及以下版本不兼容吗?