Как сделать определение браузера с jQuery 1.3 с $ .browser.msie удержанный от использования?

Для меня это решение было найдено здесь. Если включена связь IP6, подключение к «localhost» может быть медленным, вместо этого используйте ip-адрес 127.0.0.1. Это работало для меня.

моя задача mysql для подключения к решению была решена этим решением

24
задан alex 10 October 2009 в 22:49
поделиться

14 ответов

Я сталкивался с чем-то подобным, нет никакого $ .support.png (p.ej)., таким образом, я должен использовать $ .browser.version все же, возможно, мы можем просто продолжать просить больше $ .support. XXXX свойств, так же по мере необходимости.

9
ответ дан Ricardo Vega 28 November 2019 в 22:25
поделиться

Попробуйте сценарий GeckoFix в http://code.labor8.eu/geckoFix , он обнаруживает Firefox ниже, чем 3,0, таким образом, можно настроить его, как Вы хотите (т.е. путем добавления большего количества правил к нему как обнаружение Firefox 2, Firefox 3, Opera и Safari). Я думаю, что это могло быть тем, что Вы ищете. Для проверки агента пользователя просто вводят в строке поиска javascript:alert (navigator.userAgent) и находят некоторые определенные символы, которые необходимо будет ввести в сценарии.

1
ответ дан 28 November 2019 в 22:25
поделиться

jQuery 1.3 заменил браузер, тестирующий .

откровенно я удивлен, как часто Веб-разработчики заинтересованы, о каком браузере их сайт работает в. В 10 + годы веб-разработки я могу думать о горстке случаев, где я хотел уже не говоря о побеспокоенном сделать что-либо различное. Наиболее распространенная причина состояла в том, что именованные размеры шрифта значительно отличаются между Firefox, и IE (font-size: large намного больше в IE, чем FF), таким образом, я использовал файл IEfix.css для исправления этого.

, Возможно, необходимо посмотреть , Что лучше: взломы CSS или определение браузера? для более полного обсуждения темы.

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

трудно сказать что-либо больше, не зная, почему Вы заботитесь, является ли это IE, потому что Вы, вероятно, найдете, что существует намного лучшее решение выполнения, что Вы делаете.

1
ответ дан Community 28 November 2019 в 22:25
поделиться

Я говорю, перепроектируют его из jQuery 1.2's кодовая база.

Посмотрите этот раздел кода:

jQuery.browser = {
    version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
    safari: /webkit/.test( userAgent ),
   opera: /opera/.test( userAgent ),
  msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
  mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
};

Уважение GPL и лицензии MIT и извлекают уроки из кода. Не копируйте и вставляйте.

Или специально для разнюхивания IE6. Вы могли сделать:

function IsThisBrowserIE6() {
    return ((window.XMLHttpRequest == undefined) && (ActiveXObject != undefined))
}
2
ответ дан BuddyJoe 28 November 2019 в 22:25
поделиться

поддержка функции звучит как хорошая идея, НО она будет только работать, как предназначается, когда она поддерживает все возможные "ошибки". Как первый комментатор, нет никакого $support.png, или $support.stepping, или $support.peekaboo или a, о, список продолжается. Проблема с этим состоит в том, что некоторый код для создания одного браузера совместимым желанием неизбежный конец, выполняемый браузером, которому не нужен он.

5
ответ дан 28 November 2019 в 22:25
поделиться

. браузер был удержан от использования в пользу .support. Больше информации здесь: jquery.support, Что это по существу означает, - то, что вместо того, чтобы использовать сниффинг браузера, jQuery теперь показывает обнаружение поддержки и допускает намного более прекрасное гранулярное управление тем, что может сделать браузер.

Из описания:

Добавленный в наборе jQuery 1,3 А свойств, которые представляют присутствие различных функций браузера или ошибок.

jQuery идет со многими включенными свойствами, необходимо не стесняться добавлять собственное. Многие из этих свойств являются довольно низким уровнем, таким образом, сомнительно, что они будут полезны в общей ежедневной разработке, но главным образом используемые сменными и базовыми разработчиками.

значения всех свойств поддержки определяются с помощью выявления признаков (и не используйте форму сниффинга браузера)

8
ответ дан Ray Booysen 28 November 2019 в 22:25
поделиться

Да, определение браузера было удержано от использования, но свойства устаревшие, вероятно, не будут удалены из jQuery в ближайшее время. И когда они будут удалены, если все еще абсолютно необходимо сделать определение браузера, можно добавить ту же функциональность легко с маленьким, простым плагином.

Так, мой ответ ничего не должен делать с этим, на данный момент :)

редактирование: я даже предоставлю Вам плагин для использования в будущем (не протестированный, вставляемый копией из источника jQuery):

(function($) {
    var userAgent = navigator.userAgent.toLowerCase();

    $.browser = {
        version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
        safari: /webkit/.test( userAgent ),
        opera: /opera/.test( userAgent ),
        msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
        mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
    };

})(jQuery);
33
ответ дан kkyy 28 November 2019 в 22:25
поделиться

У меня есть фрагмент Javascript, который отлично работает в браузерах Mozilla и Webkit, а также в IE8. Однако в 6 и 7 ломается. Это не имеет ничего общего ни с CSS, ни с плохим Javascript, но с дрянной поддержкой IE <8.

Я вижу, откуда люди приходят к проверке "функций", а не к поиску в браузере, однако, к функциям, которые сниффинг доступен для не относящихся к нарушающему коду, так в чем же тогда разница между сниффингом браузера и сниффингом функций, пока ВСЕ функции не будут доступны в объекте $ .support?

1
ответ дан 28 November 2019 в 22:25
поделиться
function browserLessThanIE7(){
   return (/MSIE ((5\\.5)|6)/.test(navigator.userAgent) && navigator.platform == "Win32");
}

Could also work fine... This one checks for version 5, 5.5 and 6.

@Nate: change (5\.5)|6 into 7 and it checks for version 7.

4
ответ дан 28 November 2019 в 22:25
поделиться

Обнаружение браузера не является устаревшим в jQuery. Страница документации для jQuery.browser , в которой говорится:

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

Устарение означает «планируется удалить в будущем. . " Этот совет о поиске возможностей, а не пользовательских агентов, является просто хорошим общим советом и не относится к jQuery. Все, что они говорят, это то, что они упрощают выполнение правильных действий.

Однако всегда будет потребность в сниффинге пользовательского агента. Если jQuery.support не обновляется ежедневно армией разработчиков, он просто не сможет справиться с каждой ошибкой и каждой функцией в каждой второстепенной версии каждого браузера.

Я думаю, что путаница по этому поводу возникла из-за того, что внутри jQuery больше не отслеживает браузер. Но утилита API jQuery.browser продолжит свое существование.

5
ответ дан 28 November 2019 в 22:25
поделиться

Возможно, это не самый чистый способ для IE 6, но он точно работает и прост для понимания:

$(document).ready(function() {
    ie6catch = $.browser.msie + $.browser.version;
    if (ie6catch.indexOf("true6") == -1) {
        alert("This is not Internet Explorer 6");
    }
});
1
ответ дан 28 November 2019 в 22:25
поделиться

Обнаружение особенностей звучит хорошо и замечательно, но когда я пишу код, который не работает в определенном браузере, самый быстрый метод - это обнаружение браузера.

Горизонтальное центрирование элемента с использованием автоматических полей работает во всех браузерах, кроме IE. На какую особенность мне проверить? Понятия не имею. Но я знаю, в каком браузере она не работает.

Я понимаю, почему обнаружение функции может быть полезно в некоторых ситуациях, например, если браузер находится в режиме причуд/строгости. Лучшим компромиссом было бы использование обоих методов.

В свете этого "We recommend against using this property, please try to use feature detection instead" должно быть удалено со страницы документации jQuery.browser. Это вводит в заблуждение.

2
ответ дан 28 November 2019 в 22:25
поделиться

Было бы неплохо добавить браузеры как класс к тегу body для css. Не уверен, что это работает, потому что я не запускаю Windows и у меня есть powerPC, но он должен поставить класс .ie6 для всех Internet Explorer 6-9, что не очень полезно. Для всего остального используйте mooModernizr .

if (Browser.Engine.trident) {

    var IEbrowser = $('body');

    IEbrowser.addClass('ie');

}​
0
ответ дан 28 November 2019 в 22:25
поделиться

Почему нельзя было переписать jquery.browser для внутреннего использования jquery.support для определения браузера на основе функций (возможно, дополненных текущими методами из jquery.browser, где это необходимо), чтобы предоставить удобные средства выбора для браузера семейство и версия, хотя, возможно, они более надежны, чем современный jquery.browser?

2
ответ дан 28 November 2019 в 22:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: