2008-08-21 6 views

Répondre

7

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.

2

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 
}; 
1

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 à:

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

Bonne chance!

2

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

+0

juste fyi, cette solution trouve en fait le numéro de version exact du plugin installé. –

1

Environnement.La version fera ce que vous voulez! Pris en charge depuis Silverlight 2.0

Questions connexes