检测是否有任何类型的IE(MSIE)

时间:2014-07-21 08:53:37

标签: javascript php jquery internet-explorer

我不想让用户使用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,我会使用任何解决方案。

6 个答案:

答案 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 :)
}