Pergunta

Como posso detectar de forma eficiente e eficaz a versão e, nesse caso, qualquer informação disponível sobre a instância do luz cinza atualmente em execução no navegador?

Foi útil?

Solução

O controle Silverlight possui apenas um Função IsVersionSupported, que retorna verdadeiro/falso quando você fornece um número de versão, por exemplo:

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

Você pode ser tão específico quanto desejar ao verificar a compilação, já que a string da versão pode incluir todos os itens a seguir:

  • maior - o número maior
  • menor - o número menor
  • build - o número da compilação
  • revisão - o número da revisão

Portanto, podemos verificar um número de compilação específico da seguinte maneira:

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

Silverlight 1.0 Beta incluiu uma propriedade control.settings.version, que foi substituída pelo método isVersionSupported().A idéia é que você não deveria programar em versões específicas do Silverlight.Em vez disso, você deve verificar se o cliente tem pelo menos versão 1.0 ou 2.0, etc.

Dito isto, você pode obter o número da versão do Silverlight no Firefox verificando a descrição do plugin Silverlight:

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

Mostra '2.0.30523.8' no meu computador.

Observe que é possível aplicar força bruta iterando todos os números de versão lançados. Presumivelmente é isso que o BrowserHawk faz - eles informarão qual versão do Silverlight o cliente instalou.

Outras dicas

Eu peguei isso de http://forums.asp.net/p/1135746/1997617.aspx#1997617 que é o mesmo link Stu deu-te.Acabei de incluir o trecho de código.

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

encontrei este site que detecta a versão completa do silverlight- versão prateada (também conhecido como silverlightversion.com)

Conforme mencionado nos comentários acima, atualmente não existe uma maneira direta e eficiente de obter o número da versão instalada do Silverlight (que funciona em várias plataformas de navegador).

Escrevi uma postagem sobre como solucionar esse problema e detectar o número da versão principal do Silverlight (incluindo a versão 3) de forma programática e mais eficiente usando JavaScript.

Você pode encontrar o código e a postagem em:

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

Boa sorte!

Environment.Version fará o que você quiser!Suportado desde Silverlight 2.0

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top