jQuery将Browser-Name添加到css-class中

时间:2011-01-19 09:39:13

标签: javascript jquery internet-explorer

我正在使用jQuery来检测用户浏览器代理,而不是将浏览器名称作为css类添加到正文中。这与webkit和mozilla的魔法一样......但是msie它失败了 - 但不知道为什么。对于msie我不仅要添加«msie»,还要添加一个使用msie版本号的类(如«msie7»或«msie8»)。

一切正常,只有msie-section没有!

我的(完整)jQuery-Code:

    <script type="text/javascript">
<!--
(function($){
    $(function(){

        var $copy = $('div.SPA_printcontact').clone();
        var $body = $('body');

        $copy.insertAfter('#printdate');

        if($.browser.msie) {
            $body.addClass('msie')
            var userAgent = userAgent.substring(0,userAgent.indexOf('.'));
            var version = userAgent;
            $body.addClass('msie' + version)
        }
        if($.browser.webkit) {
            $body.addClass('webkit')
        }
        if($.browser.mozilla) {
            $body.addClass('mozilla')
        }

    });
}(jQuery));
-->
</script>

4 个答案:

答案 0 :(得分:4)

http://api.jquery.com/jQuery.browser/

尝试使用$ .browser.version来获取版本号

编辑:这已在jQuery v1.9及更高版本中弃用。请参考下面的汤姆答案。

答案 1 :(得分:2)

没有全局对象userAgent。它是navigator的成员,因此请使用navigator.userAgent或者像Mohib Sheth所建议的jQuery提供的版本

答案 2 :(得分:0)

您可以使用Detectizr

https://github.com/barisaydinoglu/Detectizr

Detectizr是一个检测

的Modernizr扩展
  • 设备
  • 设备型号
  • 设备方向
  • 屏幕尺寸
  • 操作系统
  • 操作系统版本
  • 操作系统版本已满
  • 浏览器
  • 浏览器版本
  • 浏览器引擎
  • 浏览器插件

检测这些集是可选的,可以禁用。

另外还有http://rafael.adm.br/css_browser_selector/,其中Detectizr基于(更轻量级)

答案 3 :(得分:-1)

请尝试使用$('body')。addClass()如果不起作用,请尝试$('body')。attr(“class”,msie + version)。