Da quel che ho visto se trasformo il codice che ho usato per trovare la versione di Chrome, togliendo [1] e [10]:
IE e FF riprendono a funzionare, ma naturalmente non viene più riconosciuta correttamente la versione di chrome.codice:parseInt(window.navigator.appVersion.match(/Chrome\/(\d+)\./))
Ora mi viene in mente che l'unico sistema potrebbe essere quello di riuscire a estrapolare la versione di chrome con una espressione regolare, però non so come fare (e nemmeno se si possa effettivamente fare).
Questa è la stringa che Chrome riporta come app.Version:
Il numero 21 è quello che interessa, ma non capisco se e come estrarlo con una espressione regolare. Ho provato a cercare un po' e a fare degli esperimenti, ma non han funzionato.codice:5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1
Soluzione trovata, bastava inserire la variabile chversion dentro il caso in cui Chrome è il browser:
Ora funziona tutto!codice:var chrome = (/Chrome/.test(navigator.userAgent))?1:0; var ie=(/MSIE (\d+\.\d+);/.test(navigator.userAgent))?1:0; var ieversion=new Number(RegExp.$1); var ff=(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)); var ffversion=new Number(RegExp.$1) if (ie) { if (ieversion >= 9.0 ) alert('Stai usando Internet Explorer! Scarica Mozilla Firefox ;)'); else alert('Stai usando una versione preistorica di IE, il sito non verrà visualizzato correttamente. Aggiorna IE o scarica Mozilla Firefox ;)'); } if (chrome) {var chversion=parseInt(window.navigator.appVersion.match(/Chrome\/(\d+)\./)[1]); if (chversion < 21.0) alert("Stai usando una versione non aggiornata di Google Chrome, aggiornalo o scarica Mozilla Firefox ;)"); else alert("Stai usando Google Chrome! Scarica Mozilla Firefox ;)"); } if (ff) {if (ffversion < 15.0 ) alert('Stai usando una versione non aggiornata di Mozilla Firefox! Per essere sicuro di visualizzare correttamente il sito aggiorna Firefox ;)'); }

Rispondi quotando