使用JS将浏览器版本添加到类或作为类

时间:2011-05-16 22:06:20

标签: javascript css

我正在尝试找到一个久经考验的脚本,嗅探 浏览器版本添加一个名为的< / strong>指向<html><body>代码...例如<html class="ie7"><html class="ff4"><html class="safari4">

我不介意它是“firefox4”还是“ff4”或“firefox_4”...只要我可以使用该类来限定我的CSS。

我可以写一个脚本来自己做这个但是我想知道是否有一个广泛使用的那个...

感谢。

9 个答案:

答案 0 :(得分:2)

对于IE,您可以使用条件注释,例如HTML5 Boilerplate如何做。对于其他人,jQuery中有一些不赞成使用的方法可以用来确定他们使用的浏览器和浏览器版本,即jQuery.browser

当然,正如其他人提到的那样,你可以使用Modernizr,虽然我认为它并不像你想要的那样嗅探浏览器类型和版本。我很确定它只是进行特征检测。

答案 1 :(得分:2)

我的强烈建议是使用知名和证据库Modernizr为你做这件事。

答案 2 :(得分:2)

查看 Modernizr 。它还有更多功能!

答案 3 :(得分:2)

JQuery进行浏览器检测。我会做这样的事情来检测IE。

if($.browser.msie)
{
    if($.browser.version)
    {
         $('html').addClass('ie' + ($.browser.version));

    }
}

当然,你可以用类似的方式检查Mozilla以及版本号。

有关它的进一步说明,请参阅http://webhole.net/2010/07/07/browser-detection-with-jquery/

答案 4 :(得分:2)

function getData() {
$.ajax({
  type: "GET",
  url: "https://jsonplaceholder.typicode.com/photos",
  beforeSend: function() {
      $('#response').html("<img src='/images/loading.gif' />");
  },
  success: function(data) {
    // do something with data
    console.log(data)
    $.loader('close'); // close the loader
  },
  error: function(jqXHR, status, error) {
    console.error(status, error);
  }
});

答案 5 :(得分:0)

在我的情况下,我需要为Chrome添加一个类,不是因为功能兼容性,而是因为background-position: fixed的错误,所以我已经解决了#34;它使用@Jonathan Marzullo中的代码并仅为此浏览器添加一些CSS指令:

var isChromium = window.chrome,
    vendorName = window.navigator.vendor,
    isOpera = window.navigator.userAgent.indexOf("OPR") > -1;
if(isChromium !== null && isChromium !== undefined && vendorName === "Google Inc." && isOpera == false) {
    // is Google chrome 
    $('body').addClass('chrome');
}

这是一个示例,说明如何使用几行代码执行具体的浏览器检测任务,但如果您需要一个功能强大且完全混乱的脚本,它将为您提供有关用户浏览器的所有信息,O.S。和你可以设想的设备,这是WichBrowser

它的沉重,复杂和作者建议不要使用,但值得一看其所有功能。

答案 6 :(得分:0)

发现this tutorial确实可以使用Detect.js和jQuery完成OP的要求。

jQuery(function( $ ){
    var ua = detect.parse(navigator.userAgent);
    $('html').addClass(ua.browser.family.toLowerCase());
});

答案 7 :(得分:-1)

var  rootElement = document.documentElement;
rootElement.className += ' ie7'; 

答案 8 :(得分:-3)

在jquery中,它很简单:

$('html').addClass('ie7');

在vanilla Javascript中:

var h = document.getElementsByTagName('html')[0];
h.className += ' ie7'; // note the preceding space