Comment puis-je détecter efficacement la version et, de ce fait, toutes les informations disponibles sur l'instance Silverlight actuellement exécutée sur le navigateur?Détection de version avec Silverlight
Répondre
Le contrôle Silverlight n'a qu'une IsVersionSupported function, qui retourne true/false lorsque vous donnez un numéro de version, par exemple:
if(slPlugin.isVersionSupported("2.0")) {
alert("I haz some flavour of Silverlight 2");
Vous pouvez être aussi précis que vous le souhaitez lors de la vérification de la construction, puisque la chaîne de version peut inclure tous les éléments suivants:
- majeur - le nombre important
- mineur - le nombre mineur
- build - le numéro de build
- révision - le numéro de révision
On peut donc vérifier un numéro de version spécifique comme suit:
if(slPlugin.isVersionSupported("2.0.30523")) {
alert("I haz Silverlight 2.0.30523, but could be any revision.");
Silverlight 1.0 Beta included a control.settings.version property, which was replaced with the isVersionSupported() method. L'idée est que vous ne devriez pas programmer sur des versions spécifiques de Silverlight. Au contraire, vous devriez vérifier si le client a au moins verion 1.0 ou 2.0, etc.
Cela dit, vous pouvez obtenir le numéro de version Silverlight dans Firefox en cochant la description du plug-in Silverlight:
alert(navigator.plugins["Silverlight Plug-In"].description);
Affiche '2.0.30523.8' sur mon ordinateur.
Notez qu'il est possible de le forcer par force en parcourant tous les numéros de version publiés. Presumably that's what BrowserHawk does - ils indiquent la version de Silverlight installée par le client.
Rechercher dans Silverlight.js:
Je suis arrivé ce qui est de http://forums.asp.net/p/1135746/1997617.aspx#1997617 le même lien Stu vous a donné. J'ai juste inclus l'extrait de code.
Silverlight.isInstalled = function(d)
{
var c = false, a = null;
try
{
var b = null;
if(Silverlight.ua.Browser == "MSIE")
b = new ActiveXObject("AgControl.AgControl");
else
if(navigator.plugins["Silverlight Plug-In"])
{
a = document.createElement("div");
document.body.appendChild(a);
a.innerHTML = '<embed type="application/x-silverlight" />';
b = a.childNodes[0]
}
if(b.IsVersionSupported(d))
c = true;
b = null;
Silverlight.available = true
}
catch(e)
{
c=false
}
if(a)
document.body.removeChild(a);
return c
};
Comme mentionné dans les commentaires ci-dessus, il n'existe actuellement aucun moyen direct efficace pour obtenir le numéro de version Silverlight installé (qui fonctionne plate-forme de navigateur croisé).
J'ai écrit un post sur la façon de contourner ce problème et de détecter le numéro de version majeur Silverlight (y compris la version 3) par programmation et plus efficacement en utilisant JavaScript.
Vous pouvez trouver le code et le poste à:
Bonne chance!
trouvé ce site qui détecte la version complète de silverlight- silverlight version (aka silverlightversion.com)
Environnement.La version fera ce que vous voulez! Pris en charge depuis Silverlight 2.0
juste fyi, cette solution trouve en fait le numéro de version exact du plugin installé. –