В jQuery плагин $.browser устарел, и его удалили. Разработчикам советуют использовать для этих целей специальные инструменты типа Modernizr. Беда в том, что браузеров становится очень и очень много. Следить за всеми ними уже не так важно, новые версии jQuery не поддерживают ie6-7, что правильно.
По факту - все проекты, где была обновлена библиотека если они использовали этот модуль перестают работать. Можно начать переписывать весь код, под новую версию, а можно поступить иначе: подключить этот плагин вручную, и тогда старый код не придется менять. Просто подключаем к странице файл с плагином и все работает, как прежде.
Код плагина возьмем из старых версий jQuery.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | ( function () { var matched, browser; // Использовать jQuery.browser не одобряется. // Подробнее: http://api.jquery.com/jQuery.browser // jQuery.uaMatch поддерживается для совместимости jQuery.uaMatch = function ( ua ) { ua = ua.toLowerCase(); var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) || /(webkit)[ \/]([\w.]+)/.exec( ua ) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) || /(msie) ([\w.]+)/.exec( ua ) || ua.indexOf( "compatible" ) < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || []; return { browser: match[ 1 ] || "" , version: match[ 2 ] || "0" }; }; matched = jQuery.uaMatch( navigator.userAgent ); browser = {}; if ( matched.browser ) { browser[ matched.browser ] = true ; browser.version = matched.version; } // Chrome is Webkit, but Webkit is also Safari. if ( browser.chrome ) { browser.webkit = true ; } else if ( browser.webkit ) { browser.safari = true ; } jQuery.browser = browser; jQuery.sub = function () { function jQuerySub( selector, context ) { return new jQuerySub.fn.init( selector, context ); } jQuery.extend( true , jQuerySub, this ); jQuerySub.superclass = this ; jQuerySub.fn = jQuerySub.prototype = this (); jQuerySub.fn.constructor = jQuerySub; jQuerySub.sub = this .sub; jQuerySub.fn.init = function init( selector, context ) { if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { context = jQuerySub( context ); } return jQuery.fn.init.call( this , selector, context, rootjQuerySub ); }; jQuerySub.fn.init.prototype = jQuerySub.fn; var rootjQuerySub = jQuerySub(document); return jQuerySub; }; })(); |
Как сказано в комментариях этого кода - Как сказано в комментариях к этому коду - "Использование этого плагина не рекомендуется". Но в старых проектах, где переписывать код под новые реалии не доходят руки, такое решение весьма кстати.
А вот тут http://www.continent.com.ua есть забавная галерейка на jQuery, правда версия 1.7 и подключен странным образом. Опера показывает приведенный к нормальному виду код в DragOnFly, оттуда можно взять и jQuery.browser
Можно добавить этот код, как отдельный файл, а можно схитрить и скопировать его прямо в файл jquery-1.10.1.min.js в самый конец.
Это лишь одна из несовместимостей новых версий. Чтобы устранить все проще подключить
< script src = "http://code.jquery.com/jquery-migrate-1.2.1.min.js" ></ script > |
Комментарии
Как сказано в комментариях этого кода - этот использование этого плашина не рекомендуется.
Следует читать:
Как сказано в комментариях к этому коду - "Использование этого плагина не рекомендуется".