Domanda

Come posso rilevare in modo efficiente ed efficace la versione e, del resto, qualsiasi informazione disponibile sull'istanza di Silverlight attualmente in esecuzione sul browser?

È stato utile?

Soluzione

Il controllo Silverlight ha solo un file Funzione IsVersionSupported, che restituisce true / false quando gli viene fornito un numero di versione, ad esempio:

if(slPlugin.isVersionSupported("2.0")) {
  alert("I haz some flavour of Silverlight 2");

Puoi essere specifico quanto vuoi quando controlli la build, poiché la stringa della versione può includere tutto quanto segue:

  • maggiore: il numero maggiore
  • minore - il numero minore
  • build: il numero di build
  • revisione: il numero di revisione

Quindi possiamo verificare la presenza di un numero di build specifico come segue:

if(slPlugin.isVersionSupported("2.0.30523")) {
  alert("I haz Silverlight 2.0.30523, but could be any revision.");

Silverlight 1.0 Beta includeva una proprietà control.settings.version, che è stata sostituita con il metodo isVersionSupported().L'idea è che non dovresti programmare con versioni specifiche di Silverlight.Piuttosto, dovresti controllare se il cliente ha almeno versione 1.0 o 2.0, ecc.

Detto questo, puoi ottenere il numero di versione di Silverlight in Firefox controllando la descrizione del plug-in Silverlight:

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

Mostra "2.0.30523.8" sul mio computer.

Tieni presente che è possibile forzarlo eseguendo l'iterazione di tutti i numeri di versione rilasciati. Presumibilmente questo è ciò che fa BrowserHawk - segnaleranno quale versione di Silverlight ha installato il client.

Altri suggerimenti

Ho preso questo da http://forums.asp.net/p/1135746/1997617.aspx#1997617 che è lo stesso collegamento Stu ti ha dato.Ho appena incluso lo snippet di codice.

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

ho trovato questo sito che rileva la versione completa di Silverlight- versione silverlight (noto anche come silverlightversion.com)

Come accennato nei commenti precedenti, al momento non esiste un modo diretto ed efficiente per ottenere il numero di versione Silverlight installata (che funziona su più piattaforme browser).

Ho scritto un post su come risolvere questo problema e rilevare il numero di versione principale di Silverlight (inclusa la versione 3) in modo programmatico e in modo più efficiente utilizzando JavaScript.

Puoi trovare il codice e il post su:

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

Buona fortuna!

Environment.Version farà quello che vuoi!Supportato da Silverlight 2.0

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top