Identificare IE9 / IE10 utilizzando jQuery

Ho un codice jQuery che funziona perfettamente per Chrome / Mozilla ma non per IE.

if ($("html").hasClass("ie")) { $(function(){ $('.green-column, .red-column, .grey-column').click(function() { alert ($(this).attr("data-type")); }); }); } else { $(function(){ $('.green-column, .red-column, .grey-column').click(function() { $("
" + $(this).attr("data-type") + "
").dialog({ modal: true, resizable: false, buttons: [ { text: "OK", click: function() { $( this ).dialog( "close" ); } } ] }); }); }); } <!--

Quindi ho in programma di utilizzare un avviso per IE9 / IE10 ma non sono in grado di distinguere tra i browser. Qualcuno può dirmi come identificare IE9 / IE10 in jQuery / HTML?

Può essere raggiunto senza utilizzare librerie o compilazioni condizionali:

 if (document.addEventListener) { alert("IE9 or greater"); } if (window.requestAnimationFrame) { alert("IE10 or greater"); } 

Fai come questo

 if ($.browser.msie && parseInt($.browser.version, 10) > 8) { alert('IE9 or IE10'); } else { alert('Non IE9 or IE10'); } 

Questo dovrebbe funzionare per la versione jQuery sotto 1.9. Se usi 1.9+, leggi questa discussione o considera l’uso di modernizr .

L’unico modo affidabile per rilevare la versione IE attualmente triggers (probabilmente emulata) è combinare la compilazione condizionale e un controllo document.documentMode .

La compilazione condizionale è facoltativa, ma ti consente di non eseguire mai lo script di rilevamento IE per i browser non IE.

Per esempio:

 if (/*@cc_on !@*/false && ( document.documentMode === 9 || document.documentMode === 10) ) { // IE 9 or 10 (not 8 or 11!) document.documentElement.className += ' ie9 ie10'; } 

Il codice precedente non è sicuro contro i minificatori. Se intendi ridimensionare il codice, inserisci la compilation condizionale in una stringa e verificalo:

 if (eval('/*@cc_on !@*/false') && ( ... )) { ... } 

Le versioni precedenti di jQuery precedenti 1.9 offrivano $.browser per ottenere questo. Ora jQuery ti chiede di verificare le funzioni tramite $.support .

Una buona alternativa è modernizr ( http://modernizr.com/ ). Modernizr aggiunge classi al tuo elemento principale come msie o ie9 o webkit o touch e così via.

Quindi puoi facilmente controllare:

 if ($('html').hasClass('ie9')) { // do something } 

So che questa è una vecchia domanda. ma nel caso non abbiate trovato una risposta.

Mostra un messaggio se il browser non è Internet Explorer 9 o successivo

 browser={}; if (/(chrome\/[0-9]{2})/i.test(navigator.userAgent)) { browser.agent = navigator.userAgent.match(/(chrome\/[0-9]{2})/i)[0].split("/")[0]; browser.version = parseInt(navigator.userAgent.match(/(chrome\/[0-9]{2})/i)[0].split("/")[1]); } else if (/(firefox\/[0-9]{2})/i.test(navigator.userAgent)) { browser.agent = navigator.userAgent.match(/(firefox\/[0-9]{2})/i)[0].split("/")[0]; browser.version = parseInt(navigator.userAgent.match(/(firefox\/[0-9]{2})/i)[0].split("/")[1]); } else if (/(MSIE\ [0-9]{1})/i.test(navigator.userAgent)) { browser.agent = navigator.userAgent.match(/(MSIE\ [0-9]{1})/i)[0].split(" ")[0]; browser.version = parseInt(navigator.userAgent.match(/(MSIE\ [0-9]{1})/i)[0].split(" ")[1]); } else if (/(Opera\/[0-9]{1})/i.test(navigator.userAgent)) { browser.agent = navigator.userAgent.match(/(Opera\/[0-9]{1})/i)[0].split("/")[0]; browser.version = parseInt(navigator.userAgent.match(/(Opera\/[0-9]{1})/i)[0].split("/")[1]); } else if (/(Trident\/[7]{1})/i.test(navigator.userAgent)) { browser.agent = "MSIE"; browser.version = 11; } else { browser.agent = false; browser.version = false; } if (/(Windows\ NT\ [0-9]{1}\.[0-9]{1})/.test(navigator.userAgent)) { browser.os = "Windows"; switch(parseFloat(navigator.userAgent.match(/(Windows\ NT\ [0-9]{1}\.[0-9]{1})/)[0].split(" ")[2])) { case 6.0: browser.osversion = "Vista"; break; case 6.1: browser.osversion = "7"; break; case 6.2: browser.osversion = "8"; break; default: browser.osversion = false; } } else if (/(OS\ X\ [0-9]{2}\.[0-9]{1})/.test(navigator.userAgent)) { browser.os = "OS X"; browser.osversion = navigator.userAgent.match(/(OS\ X\ [0-9]{2}\.[0-9]{1})/)[0].split(" ")[2]; } else if (/(Linux)/.test(navigator.userAgent)) { browser.os = "Linux"; browser.osversion = false; } 

Puoi sempre rilevarlo utilizzando javascript nativo … controlla questo post: Rilevamento del browser in JavaScript?