official link instalar enlace jquery version

link - error browser.msie después de actualizar a jQuery 1.9.1



jquery official (11)

¡Actualizar! ¡Revisión completa de las respuestas para el nuevo complemento!

El siguiente complemento ha sido probado en todos los principales navegadores. Hace uso tradicional de la cadena userAgent para volver a equipar jQuery.browser solo si está utilizando jQuery versión 1.9 o superior .

Tiene las propiedades de tipo jQuery.browser.msie tradicionales, así como algunas nuevas, incluida una propiedad .mobile para ayudar a decidir si el usuario está en un dispositivo móvil.

Nota: Este no es un reemplazo adecuado para las pruebas de características. Si espera admitir una función específica en un dispositivo específico, es mejor utilizar las pruebas de características tradicionales

/** jQuery.browser * @author J.D. McKinstry (2014) * @description Made to replicate older jQuery.browser command in jQuery versions 1.9+ * @see http://jsfiddle.net/SpYk3/wsqfbe4s/ * * @extends jQuery * @namespace jQuery.browser * @example jQuery.browser.browser == ''browserNameInLowerCase'' * @example jQuery.browser.version * @example jQuery.browser.mobile @returns BOOLEAN * @example jQuery.browser[''browserNameInLowerCase''] * @example jQuery.browser.chrome @returns BOOLEAN * @example jQuery.browser.safari @returns BOOLEAN * @example jQuery.browser.opera @returns BOOLEAN * @example jQuery.browser.msie @returns BOOLEAN * @example jQuery.browser.mozilla @returns BOOLEAN * @example jQuery.browser.webkit @returns BOOLEAN * @example jQuery.browser.ua @returns navigator.userAgent String */ ;;(function($){var a=$.fn.jquery.split("."),b;for(b in a)a[b]=parseInt(a[b]);if(!$.browser&&(1<a[0]||9<=a[1])){a={browser:void 0,version:void 0,mobile:!1};navigator&&navigator.userAgent&&(a.ua=navigator.userAgent,a.webkit=/WebKit/i.test(a.ua),a.browserArray="MSIE Chrome Opera Kindle Silk BlackBerry PlayBook Android Safari Mozilla Nokia".split(" "),/Sony[^ ]*/i.test(a.ua)?a.mobile="Sony":/RIM Tablet/i.test(a.ua)?a.mobile="RIM Tablet":/BlackBerry/i.test(a.ua)?a.mobile="BlackBerry":/iPhone/i.test(a.ua)? a.mobile="iPhone":/iPad/i.test(a.ua)?a.mobile="iPad":/iPod/i.test(a.ua)?a.mobile="iPod":/Opera Mini/i.test(a.ua)?a.mobile="Opera Mini":/IEMobile/i.test(a.ua)?a.mobile="IEMobile":/BB[0-9]{1,}; Touch/i.test(a.ua)?a.mobile="BlackBerry":/Nokia/i.test(a.ua)?a.mobile="Nokia":/Android/i.test(a.ua)&&(a.mobile="Android"),/MSIE|Trident/i.test(a.ua)?(a.browser="MSIE",a.version=/MSIE/i.test(navigator.userAgent)&&0<parseFloat(a.ua.split("MSIE")[1].match(/[0-9/.]{1,}/)[0])?parseFloat(a.ua.split("MSIE")[1].match(/[0-9/.]{1,}/)[0]): "Edge",/Trident/i.test(a.ua)&&/rv:([0-9]{1,}[/.0-9]{0,})/.test(a.ua)&&(a.version=parseFloat(a.ua.match(/rv:([0-9]{1,}[/.0-9]{0,})/)[1].match(/[0-9/.]{1,}/)[0]))):/Chrome/.test(a.ua)?(a.browser="Chrome",a.version=parseFloat(a.ua.split("Chrome/")[1].split("Safari")[0].match(/[0-9/.]{1,}/)[0])):/Opera/.test(a.ua)?(a.browser="Opera",a.version=parseFloat(a.ua.split("Version/")[1].match(/[0-9/.]{1,}/)[0])):/Kindle|Silk|KFTT|KFOT|KFJWA|KFJWI|KFSOWI|KFTHWA|KFTHWI|KFAPWA|KFAPWI/i.test(a.ua)?(a.mobile="Kindle", /Silk/i.test(a.ua)?(a.browser="Silk",a.version=parseFloat(a.ua.split("Silk/")[1].split("Safari")[0].match(/[0-9/.]{1,}/)[0])):/Kindle/i.test(a.ua)&&/Version/i.test(a.ua)&&(a.browser="Kindle",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].match(/[0-9/.]{1,}/)[0]))):/BlackBerry/.test(a.ua)?(a.browser="BlackBerry",a.version=parseFloat(a.ua.split("/")[1].match(/[0-9/.]{1,}/)[0])):/PlayBook/.test(a.ua)?(a.browser="PlayBook",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].match(/[0-9/.]{1,}/)[0])): /BB[0-9]{1,}; Touch/.test(a.ua)?(a.browser="Blackberry",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].match(/[0-9/.]{1,}/)[0])):/Android/.test(a.ua)?(a.browser="Android",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].match(/[0-9/.]{1,}/)[0])):/Safari/.test(a.ua)?(a.browser="Safari",a.version=parseFloat(a.ua.split("Version/")[1].split("Safari")[0].match(/[0-9/.]{1,}/)[0])):/Firefox/.test(a.ua)?(a.browser="Mozilla",a.version=parseFloat(a.ua.split("Firefox/")[1].match(/[0-9/.]{1,}/)[0])): /Nokia/.test(a.ua)&&(a.browser="Nokia",a.version=parseFloat(a.ua.split("Browser")[1].match(/[0-9/.]{1,}/)[0])));if(a.browser)for(var c in a.browserArray)a[a.browserArray[c].toLowerCase()]=a.browser==a.browserArray[c];$.extend(!0,$.browser={},a)}})(jQuery); /* - - - - - - - - - - - - - - - - - - - */ var b = $.browser; console.log($.browser); // see console, working example of jQuery Plugin console.log($.browser.chrome); for (var x in b) { if (x != ''init'') $(''<tr />'').append( $(''<th />'', { text: x }), $(''<td />'', { text: b[x] }) ).appendTo($(''table'')); }

table { border-collapse: collapse; } th, td { border: 1px solid; padding: .25em .5em; vertical-align: top; } th { text-align: right; } textarea { height: 500px; width: 100%; }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <table></table>

Uso el siguiente recorte de un script:

if ($.browser.msie && $.browser.version < 9) { extra = "?" + Math.floor(Math.random() * 3000); }

Funciona bien con jQuery 1.8.3 .

Ahora actualicé jQuery a la nueva versión 1.9.1 para usar un nuevo script.
Ahora recibo el siguiente error:

TypeError: no se puede leer la propiedad ''msie'' de undefined

Leí el registro de cambios de la nueva versión de jQuery, pero nada debería haber cambiado
con msie

Cualquier error conocido, consejos o propuestas?


Como $ .browser está en desuso, aquí hay una solución alternativa:

/** * Returns the version of Internet Explorer or a -1 * (indicating the use of another browser). */ function getInternetExplorerVersion() { var rv = -1; // Return value assumes failure. if (navigator.appName == ''Microsoft Internet Explorer'') { var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[/.0-9]{0,})"); if (re.exec(ua) != null) rv = parseFloat( RegExp.$1 ); } return rv; } function checkVersion() { var msg = "You''re not using Internet Explorer."; var ver = getInternetExplorerVersion(); if ( ver > -1 ) { if ( ver >= 8.0 ) msg = "You''re using a recent copy of Internet Explorer." else msg = "You should upgrade your copy of Internet Explorer."; } alert( msg ); }

Source

Sin embargo, la razón por la que está en desuso es porque jQuery quiere que use detección de características en su lugar.

Un ejemplo:

$("p").html("This frame uses the W3C box model: <span>" + jQuery.support.boxModel + "</span>");

Y por último pero no menos importante, la forma más confiable de verificar las versiones de IE:

// ---------------------------------------------------------- // A short snippet for detecting versions of IE in JavaScript // without resorting to user-agent sniffing // ---------------------------------------------------------- // If you''re not in IE (or IE version is less than 5) then: // ie === undefined // If you''re in IE (>=5) then you can determine which version: // ie === 7; // IE7 // Thus, to detect IE: // if (ie) {} // And to detect the version: // ie === 6 // IE6 // ie > 7 // IE8, IE9 ... // ie < 9 // Anything less than IE9 // ---------------------------------------------------------- // UPDATE: Now using Live NodeList idea from @jdalton var ie = (function(){ var undef, v = 3, div = document.createElement(''div''), all = div.getElementsByTagName(''i''); while ( div.innerHTML = ''<!--[if gt IE '' + (++v) + '']><i></i><![endif]-->'', all[0] ); return v > 4 ? v : undef; }());


En lugar de tener todo el script de migración agregado, simplemente puede agregar lo siguiente (extraído del script de migración)

$.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" }; };

y luego úsalo como tal

$.uaMatch(navigator.userAgent)



Las opciones de documentation se desaprobaron anteriormente y se eliminaron en la versión 1.9 junto con muchos otros elementos obsoletos, como .live .

Para proyectos y bibliotecas externas que desean actualizar a 1.9 pero aún desean admitir estas características, jQuery ha lanzado un plugin de migración por el momento.

Si necesita compatibilidad con versiones anteriores, puede usar el complemento de migración .


Para la detección simple de IE, tiendo a usar:

(/msie|trident/i).test(navigator.userAgent)

Visite Microsoft Developer Network para obtener más información sobre el agente de uso de IE: http://msdn.microsoft.com/library/ms537503.aspx


Puede detectar el navegador IE de esta manera.

(navigator.userAgent.toLowerCase().indexOf(''msie 6'') != -1)

puede obtener referencias en esta URL: jquery.browser.msie Alternativa


Puedes usar :

var MSIE = jQuery.support.leadingWhitespace; // This property is not supported by ie 6-8 $(document).ready(function(){ if (MSIE){ if (navigator.vendor == ''Apple Computer, Inc.''){ // some code for this navigator } else { // some code for others browsers } } else { // default code }});


Usando esto:

if (navigator.userAgent.match ("MSIE")) {}


Yo tuve este problema también. Estábamos usando dos versiones de Jquery (1.11.3 y 1.8.3), una de las cuales estaba causando este problema. Encontré un lanzamiento de lightbox_me.js que funcionó en ambas versiones:

http://buckwilson.me/lightboxme/

Fue solo un reemplazo fácil de un archivo antiguo.


$.browser quedó en desuso en la versión 1.3 y eliminado en 1.9

Puede verificar esto al ver la documentation .