Detecção de versão com Silverlight
-
09-06-2019 - |
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?
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:
Boa sorte!
Environment.Version fará o que você quiser!Suportado desde Silverlight 2.0
Veja em silverlight.js: