如何用jQuery检测IE7?

Mit*_*ran 46 browser jquery internet-explorer internet-explorer-7

如何用jQuery检测IE7可能使用jQuery.browser?

Mit*_*ran 70

有办法

if ($.browser.msie  && parseInt($.browser.version, 10) === 7) {
  alert('IE7'); 
} else {
  alert('Non IE7');
}
Run Code Online (Sandbox Code Playgroud)

- 更新

请注意,$ .browser从jQuery的1.9移除

  • 这已从jQuery 1.9中删除 - 请参阅下面的替代方法. (2认同)

Jam*_*ate 52

$ .browser.此功能已被弃用,您应该考虑使用$ .support.

要回答这个问题,这是一种坚如磐石的技术,主要用于样式表,但也可以轻松地用于检查浏览器版本,或者最好仍然是选择器的一部分.

  1. 使用以下标记(来自HTML5 Boilerplate)

    <!--[if lt IE 7]><html class="ie6"><![endif]-->
    <!--[if IE 7]><html class="ie7"><![endif]-->
    <!--[if IE 8]><html class="ie8"><![endif]-->
    <!--[if gt IE 8]><!--><html><!--<![endif]-->
    <head>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在jQuery中使用带有hasClass的选择器

    $('html').hasClass('ie7');
    $('html.ie7 .myclass').dostuff();
    
    Run Code Online (Sandbox Code Playgroud)
  3. 并在css中用作普通选择器的一部分

    .mydiv {max-height:50px}
    .ie6 .mydiv {height:50px} /* ie6 max-height fix */
    
    Run Code Online (Sandbox Code Playgroud)

  • @Marcel有一些破坏的行为,其特征检测实际上很难实现.主要是布局错误.另一个例子是IE具有不同的图像不透明度的问题,这些图像本身是具有alpha通道的PNG图像.世界上你如何"特征检测"这个问题? (3认同)
  • @JamesWestgate或者他们有红绿色盲问题...影响5-10%的用户;) (3认同)
  • @Pointy - 啊,是的,当然,以及IE 6中的悬停问题,以及......那就是说,我会使用条件注释来包含不同的JavaScript代码块.这比测试用户代理字符串更可靠. (2认同)

Nil*_*ils 8

考虑所有其他事项:

if ($.browser.msie && $.browser.version == 7) {

    //do something

    };
Run Code Online (Sandbox Code Playgroud)

应该管用.是否是正确的做事方式是另一个问题.

  • 这已经从jQuery 1.9中删除了 (2认同)