我不想让用户使用Microsoft Internetexplorer(任何版本)访问我的网站。
到目前为止我发现的是检测它是否低于或等于10版。
一个非常令人讨厌的事情:Internetexplorer> v10不承认自己是InternetExplorer。
到目前为止我找到并尝试过:
if(navigator.appVersion.indexOf("MSIE")!=-1){
alert("You use IE. That´s no good.");
}
或
if ( $.browser.msie ) {
alert( $.browser.version );
}
和
http://msdn.microsoft.com/en-us/library/ie/ms537509%28v=vs.85%29.aspx
如果有javascript,jquery或php,我会使用任何解决方案。
答案 0 :(得分:80)
这对我来说可以检测任何版本的IE 5-11(Internet Explorer)(2014年8月/ 05日):
if (navigator.appName == 'Microsoft Internet Explorer' || !!(navigator.userAgent.match(/Trident/) || navigator.userAgent.match(/rv:11/)) || (typeof $.browser !== "undefined" && $.browser.msie == 1))
{
alert("Please dont use IE.");
}
答案 1 :(得分:26)
这是因为Internet Explorer的每个版本都会更新user-agent string。
在Internet Explorer 11中删除了 MSIE
个令牌,$.browser
使用navigator.userAgent
来确定平台,并在jQuery 1.9中将其删除。
您可以使用以下代码来确定具有纯java脚本的浏览器。
var isIE = !!navigator.userAgent.match(/Trident/g) || !!navigator.userAgent.match(/MSIE/g);
if(isIE){
alert("IE");
}
else{
alert("Not IE");
}
谢谢!
答案 2 :(得分:7)
如果您对用户当前使用的哪个版本感兴趣,可以尝试使用它来检测浏览器是否支持Conditional Compilation Statements
http://msdn.microsoft.com/en-us/library/7kx09ct1%28v=vs.80%29.aspx
if(/*@cc_on!@*/false)
{
// You use IE. That´s no good.
alert("oh my god");
}
答案 3 :(得分:4)
您可以使用conditional compilation ,例如
<script>
var isIE = false;
/*@cc_on isIE = true; @*/
</script>
但请注意,IE11在标准模式下没有观察到这一点。用户代理嗅探通常是一个坏主意,但随着IE变得更符合标准,它也变得更难检测(希望也意味着更少的需要)
答案 4 :(得分:1)
对于IE&gt;如图10所示,当前是IE 11,用户代理在浏览器的HTTP请求头中携带一些内容
Mozilla / 5.0(Windows NT 6.3; WOW64; Trident / 7.0; rv:11.0 ),如Gecko
您可以查看&#34; rv:11.0 &#34;对于版本11.如果您需要此代码,请告诉我。
答案 5 :(得分:1)
我在过去的这个剧本中找到了(也许是在SO中)它对我有用(IE 10也是)
<![if IE]>
<script type='text/javascript'>
if(/*@cc_on!@*/false)
var bIsIE = 1;
</script>
<![endif]>
然后
if (typeof (bIsIE) != 'undefined')
{
//IE :(
}
else
{
//NOT IE :)
}