J’ai un site qui existe en 3 versions: en Silverlight, en Flash, et en HTML pour les réfractaires aux plugins. Au lieu de proposer le choix entre les versions sur la page d’accueil, j’ai voulu faire une redirection automatique en fonction des plugins installés sur le navigateur, je me suis dis que 5 minutes sur google me suffiraient à trouver le code magique qui ferait ça. Erreur ! On trouve bien quelques codes un peu partout sur internet, mais parmis ceux que j’ai essayé, aucun ne fonctionnait correctement (enfin, ils fonctionnent quand on a le plugin installé et qu’on est sous IE, dans les autres cas c’est beaucoup moins sûr)

J’en suis arrivé donc à faire mon script moi même (enfin, je me suis inspiré d’un qui fonctionnait presque), et le voilà :

<script type="text/javascript">
function detectSilverlight() {
	if (navigator.mimeTypes.length > 0) {
		return
			navigator.mimeTypes["application/x-silverlight"] != null &&
			navigator.mimeTypes["application/x-silverlight"].enabledPlugin != null;
	}
	else if (window.ActiveXObject) {
		try {
			new ActiveXObject("AgControl.AgControl");
			return true;
		}
		catch (oError) {
			return false;
		}
	}
	else {
		return false;
	}
}

function detectFlash() {
	if (navigator.mimeTypes.length > 0) {
		return
			navigator.mimeTypes["application/x-shockwave-flash"] != null && 
			navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin != null;
	}
	else if (window.ActiveXObject) {
		try {
			new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			return true;
		}
		catch (oError) {
			return false;
		}
	}
	else {
		return false;
	}
}

if (detectSilverlight()) {
	window.location.replace("pageSilverlight.htm");
}
else if (detectFlash()) {
	window.location.replace("pageFlash.htm");
}
else {
	window.location.replace("pageHtml.htm");
}	
</script>