Обнаружить IE8, IE7, Safari, FireFox с jQuery 1.3+? - PullRequest
1 голос
/ 03 июня 2009

Мне нужно изменить значение в зависимости от каждого браузера, поскольку все они отображаются по-разному.

if (navigator.appName == 'Netscape'){
        top = 17;
}

Это работало, но, к сожалению, и Firefox, и Safari отображаются как "Netscape"

Как бы я использовал jQuery 1.3.2, чтобы обнаружить все это? Я не смог найти никакой информации в jquery.support сейчас, когда jquery.browser пропал.

Спасибо!

Ответы [ 5 ]

5 голосов
/ 03 июня 2009

Если у вас должно быть обнаружение в браузере (несмотря на предупреждения против него), текущая процедура ppk актуальна (даже через Chrome и iPhone).

4 голосов
/ 03 июня 2009

Используете ли вы или рассматривали вопрос об использовании a reset.css таблицы стилей для установки значений по умолчанию для всех браузеров на ноль? Если нет, я рекомендую вам сделать это, так как это может решить вашу текущую проблему, а также возможные будущие проблемы.

Это может помочь, поскольку для всех браузеров будет установлен базовый ноль, поэтому при применении отступов или позиционирования это должно иметь одинаковый эффект во всех браузерах.

2 голосов
/ 03 июня 2009

Что они делают по-разному? Есть ли способ, которым вы можете использовать обнаружение способности вместо анализа в браузере? Он менее подвержен поломкам при появлении новых браузеров и более терпим к краю.

1 голос
/ 03 июня 2009

Вы можете использовать объект jQuery.browser. В jQ 1.3 он устарел в пользу jQuery.support, но нет никаких планов по его полному удалению, поэтому вы должны быть в безопасности.

Тем не менее, использование перехвата браузера, хотя и очень легко и заманчиво, обычно не лучший способ сделать что-то. Поскольку у некоторых браузеров возникают проблемы с использованием CSS по-разному, возможно, вы захотите взглянуть на jQuery.support.boxModel.

0 голосов
/ 03 июня 2009

Все они по-разному отображают значение css для всплывающей подсказки.

var container = $('<div id="personPopupContainer">'
    + '<div id="personPopupContent">'
    + '</div>'
    + '</div>');

var pos = $(this).offset();
var width = $(this).width();
var reposition = { left: (pos.left - width) + 'px', top: pos.top + msg + 'px' };

container.css({
                    top: reposition.top
             });
...