检查浏览器是否

时间:2013-06-03 09:59:09

标签: javascript jquery html internet-explorer

我想使用jquery检查浏览器是否为IE。 如果浏览器是IE改变了一些类。我试过像

这样的东西
$(document).ready(function () {
    <![if !IE]>
   ---------------
    <![endif]>
    });

但它没有回复我的需求。任何帮助?

8 个答案:

答案 0 :(得分:3)

您还没有充分说明您的实际问题,但我想您正在尝试应对IE(某些版本)中缺少的功能。

我要说的主要是你解决问题的方法根本就是错误的。

首先,IE(与任何其他浏览器一样)的功能在各种版本之间变化很大。 IE10实际上相当不错,并且支持您可能想要使用的大多数现代浏览器功能。 IE11将在不久的将来发布,提供更好的支持。您可能在使用IE8或更早版本时遇到问题,但大多数编写良好的代码都应该与IE10一起使用而不会出现任何问题。因此,在不检查版本的情况下对IE进行全面检查几乎肯定是个坏主意。

其次,即使您要进行IE检查,<![if !IE]>也是错误的,因为自IE10以来,IE已经放弃了对此的支持。他们放弃它的原因是专门阻止浏览器检测的不良做法。

还有其他各种检测IE的方法,但出于同样的原因,它们都是不好的做法:检测浏览器并使网站以不同的方式针对不同的浏览器工作有很多问题。这是一个很大的话题,所以我建议reading here了解更多信息。

最后,该怎么做?答案是特征检测

简而言之:

  1. 找出旧版浏览器不支持的功能
  2. 编写一个脚本,用于检测用户的浏览器是否支持该功能。
  3. 编写代码以应对该检查的否定答案 (这可能包括向浏览器添加缺少的功能的“polyfill&#39;脚本”或不支持的浏览器的某种替代功能)
  4. 此技术允许您以一种处理所有浏览器的方式编写您的网站,无论他们具备什么功能。

    您应该尝试进行特征检测的好库Modernizr

    ps - 如果你在IE中遇到特定问题,你应该问一个单独的问题;这里的人们很有可能帮助你让它工作,而整个人如何检测IE&#39;无论如何,问题都是不必要的。

答案 1 :(得分:1)

$.browser已弃用,不应使用。

您可以使用功能检测来检查呈现页面所需的特定内容。请参阅此处的jQuery文档:http://api.jquery.com/jQuery.support/

答案 2 :(得分:1)

有关于此的博客文章告诉您不应该使用userAgent。非常有趣的阅读:

http://tanalin.com/en/articles/ie-version-js/

一些代码段:

if (document.all && !document.querySelector) {
    alert('IE7 or lower');
}
if (document.all && document.querySelector && !document.addEventListener) {
    alert('IE8');
}
if (document.all && document.documentMode && 8 === document.documentMode) {
    alert('IE8 or IE9+ in IE8 compatibility mode');
}

答案 3 :(得分:0)

我的不好,我没有检查,但是从jQuery版本1.9开始,jQuery.browser已被弃用。

相反,使用jQuery的正确练习将涉及使用jQuery.support()

进行特征检测
  

描述:表示存在不同浏览器功能或错误的属性集合。主要用于jQuery的内部使用;当内部不再需要特定属性以提高页面启动性能时,可能会删除这些属性。

答案 4 :(得分:0)

你可以试试这个,不需要jQuery,但有条件评论:

<!doctype html>
<!--[if IE 8 ]><html lang="en" class="no-js ie8"><![endif]-->
<!--[if IE 9 ]><html lang="en" class="no-js ie9"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->
<html lang="en" class="no-js">
<!--<![endif]-->

答案 5 :(得分:0)

jQuery.browser在jQuery 1.9中已被弃用。

你应该尝试jQuery Migrate - https://github.com/jquery/jquery-migrate

类似的问题 - Easiest/Lightest Replacement For Browser Detection jQuery 1.9?

答案 6 :(得分:0)

尝试此操作来检查浏览器。

 if ( $.browser.msie ) {
     alert( $.browser.version );
  }

$.browser属性提供有关访问该页面的Web浏览器的信息,如浏览器本身所报告的。它包含四个最流行的浏览器类(Internet Explorer,Mozilla,Webkit和Opera)中的每一个的标志以及版本信息。

可用的标志是:

  • webkit(从jQuery 1.4开始)
  • safari(已弃用)
  • 歌剧
  • MSIE
  • Mozilla浏览器

Reference

答案 7 :(得分:0)

我猜您仍然可以使用条件注释来检查浏览器是否为IE ... 请通过发布的here

博客
 <!--[if IE]> 
     This content is ignored in IE10 and other browsers.    
     In older versions of IE it renders as part of the page.    
<![endif]-->

====================================================================
    <!--[if lt IE 9]>
       <script src="jquery-1.9.1.js"></script>
    <![endif]-->
       //There is difference in the commenting style which jQuery team has used!
    <!--[if gte IE 9]><!-->
        <script src="jquery-2.0.0b2.js"></script>
    <!--<![endif]-->