Подтвердить что ты не робот

Обнаружение браузера Firefox с помощью jquery

Я столкнулся с проблемой: у моего css есть некоторая ошибка, когда firefox ниже 2.0. Я хотел бы обнаружить браузер, чтобы исправить ошибку css.

Это мой код:

$(document).ready ( 
 function() {
  if ( $.browser.mozilla == true && $.browser.version < '3.0' ) {
   $('img.frameMargin').css('margin-left','35px');
  }
 }
);

Но этот код выглядит как не работает.

Спасибо за заранее.

4b9b3361

Ответ 1

Вам нужно было бы это сделать...

$.browser.version < '1.9'

FireFox 2 должен вернуть 1,8... так что это пройдет.

Ответ 2

Об этом уже говорилось в этой дискуссии: В Javascript, как определить, является ли мой текущий браузер Firefox на компьютере, а не на всех остальных?

Чтобы ответить на ваш вопрос с этой должности, спасибо "BalusC" за ответ:

var FF = !(window.mozInnerScreenX == null);
if(FF) {
    // is firefox 
} else { 
    // not firefox 
}

Над сообщениями советуем использовать jQuery.browser. Но API jQuery рекомендует не использовать этот метод.. (см. DOCS в API).

API jQuery рекомендует использовать 'jQuery.support' (http://api.jquery.com/jQuery.support/). Причина в том, что jQuery.browser использует агент пользователя, который может быть подделан, и на самом деле он устарел в более поздних версиях jQuery. Лучше использовать обнаружение функций вместо обнаружения браузера.

UPDATE:

jQuery.browser теперь удаляется из jQuery с версии 1.9

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

если вам действительно нужно его использовать. jQuery.browser был перенесен как отдельный плагин jQuery

https://github.com/gabceb/jquery-browser-plugin

надеюсь, что поможет

Ответ 3

Я просто столкнулся с этой проблемой. $.browser.version на самом деле обнаруживает версию механизма рендеринга, а не версию браузера (несмотря на то, что подразумевает его название), поэтому, если вы хотите обнаружить Firefox 4 > и позже вы должны использовать

$.browser.mozilla && $.browser.version > '2'

Поскольку Firefox 4 использует Gecko 2.0 как механизм рендеринга. Это довольно запутанно, я знаю:)

Ответ 4

На моей машине (Mac OS X 10.6), $.browser.version в отчетах Firefox 4 "2.0". Итак, похоже, что ваш код действителен, но есть проблема с JQuery.

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

Мы не рекомендуем использовать это свойство; попробуйте использовать обнаружение функции (см. jQuery.support).

Если вам нужно надежное обнаружение браузера в Javascript, ознакомьтесь с одним из многих обучающих программ в Интернете (например, этот).