Da quel che ho visto se trasformo il codice che ho usato per trovare la versione di Chrome, togliendo [1] e [10]:
codice:
parseInt(window.navigator.appVersion.match(/Chrome\/(\d+)\./))
IE e FF riprendono a funzionare, ma naturalmente non viene più riconosciuta correttamente la versione di chrome.
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:
codice:
5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1
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.
Soluzione trovata, bastava inserire la variabile chversion dentro il caso in cui Chrome è il browser:
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 ;)');
}
Ora funziona tutto!