Question

Comment puis-je détecter efficacement la version et, par conséquent, toute information disponible sur l'instance de Lumière argentée actuellement en cours d'exécution sur le navigateur ?

Était-ce utile?

La solution

Le contrôle Silverlight n'a qu'un Fonction IsVersionSupported, qui renvoie vrai / faux lorsque vous lui 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 version, puisque la chaîne de version peut inclure tous les éléments suivants :

  • majeur - le nombre majeur
  • mineur - le nombre mineur
  • build - le numéro de build
  • révision - le numéro de révision

Nous pouvons donc vérifier un numéro de build 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 incluait une propriété control.settings.version, qui a été remplacée par la méthode isVersionSupported().L'idée est que vous ne devriez pas programmer sur des versions spécifiques de Silverlight.Vous devriez plutôt vérifier si le client a au moins version 1.0 ou 2.0, etc.

Cela étant dit, vous pouvez obtenir le numéro de version Silverlight dans Firefox en vérifiant la description du plugin Silverlight :

alert(navigator.plugins["Silverlight Plug-In"].description);

Affiche « 2.0.30523.8 » sur mon ordinateur.

Notez qu'il est possible de le forcer brutalement en parcourant tous les numéros de version publiés. Vraisemblablement, c'est ce que fait BrowserHawk - ils indiqueront quelle version de Silverlight le client a installée.

Autres conseils

J'ai eu ça de http://forums.asp.net/p/1135746/1997617.aspx#1997617 qui est le même lien Stu vous a donné.Je viens d'inclure 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
};

trouvé ce site qui détecte la version complète de silverlight- version argentée (alias silverlightversion.com)

Comme mentionné dans les commentaires ci-dessus, il n'existe actuellement aucun moyen direct et efficace d'obtenir le numéro de version Silverlight installé (qui fonctionne sur plusieurs plates-formes de navigateurs).

J'ai écrit un article sur la façon de contourner ce problème et de détecter le numéro de version majeure de Silverlight (y compris la version 3) par programme et plus efficacement à l'aide de JavaScript.

Vous pouvez trouver le code et le message sur :

http://www.apijunkie.com/APIJunkie/blog/post/2009/04/How-to-programmatically-detect-Silverlight-version.aspx

Bonne chance!

Environment.Version fera ce que vous voulez !Pris en charge depuis Silverlight 2.0

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top