J'ai écrit du code qui renifle IE4 ou plus et est actuellement en parfait état de fonctionnement dans les sites de mes clients, ainsi que mes propres sites personnels.
Inclure les éléments suivants constante énumérée et de la fonction des variables en javascript inclure le fichier sur votre page...
//methods
var BrowserTypes = {
Unknown: 0,
FireFox: 1,
Chrome: 2,
Safari: 3,
IE: 4,
IE7: 5,
IE8: 6,
IE9: 7,
IE10: 8,
IE11: 8,
IE12: 8
};
var Browser = function () {
try {
//declares
var type;
var version;
var sVersion;
//process
switch (navigator.appName.toLowerCase()) {
case "microsoft internet explorer":
type = BrowserTypes.IE;
sVersion = navigator.appVersion.substring(navigator.appVersion.indexOf('MSIE') + 5, navigator.appVersion.length);
version = parseFloat(sVersion.split(";")[0]);
switch (parseInt(version)) {
case 7:
type = BrowserTypes.IE7;
break;
case 8:
type = BrowserTypes.IE8;
break;
case 9:
type = BrowserTypes.IE9;
break;
case 10:
type = BrowserTypes.IE10;
break;
case 11:
type = BrowserTypes.IE11;
break;
case 12:
type = BrowserTypes.IE12;
break;
}
break;
case "netscape":
if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1) { type = BrowserTypes.Chrome; }
else { if (navigator.userAgent.toLowerCase().indexOf("firefox") > -1) { type = BrowserTypes.FireFox } };
break;
default:
type = BrowserTypes.Unknown;
break;
}
//returns
return type;
} catch (ex) {
}
};
Ensuite, tout ce que vous avez à faire est d'utiliser tout conditionnelle des fonctionnalités telles que la...
c'est à dire. value = (Browser() >= BrowserTypes.IE) ? node.text : node.textContent;
ou WindowWidth = (((Browser() >= BrowserTypes.IE9) || (Browser() < BrowserTypes.IE)) ? window.innerWidth : document.documentElement.clientWidth);
ou sJSON = (Browser() >= BrowserTypes.IE) ? xmlElement.text : xmlElement.textContent;
L'idée? Espérons que cette aide.
Oh, vous voudrez peut-être garder à l'esprit à l'AQ, le Navigateur() la fonction après IE10 est sorti, juste pour vérifier qu'ils n'ont pas changer les règles.