Pregunta

¿Cómo puedo detectar de manera eficiente y efectiva la versión y, de hecho, cualquier información disponible sobre la instancia de Luz plateada actualmente ejecutándose en el navegador?

¿Fue útil?

Solución

El control Silverlight sólo tiene un Función IsVersionSupported, que devuelve verdadero/falso cuando le das un número de versión, por ejemplo:

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

Puede ser tan específico como desee al verificar la compilación, ya que la cadena de versión puede incluir todo lo siguiente:

  • mayor - el número mayor
  • menor - el número menor
  • compilación: el número de compilación
  • revisión - el número de revisión

Entonces podemos verificar un número de compilación específico de la siguiente manera:

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

Silverlight 1.0 Beta incluía una propiedad control.settings.version, que fue reemplazada por el método isVersionSupported().La idea es que no deberías programar con versiones específicas de Silverlight.Más bien, debería comprobar si el cliente tiene al menos versión 1.0 o 2.0, etc.

Dicho esto, puedes obtener el número de versión de Silverlight en Firefox consultando la descripción del complemento Silverlight:

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

Muestra '2.0.30523.8' en mi computadora.

Tenga en cuenta que es posible aplicar fuerza bruta iterando a través de todos los números de versión publicados. Presumiblemente eso es lo que hace BrowserHawk. - informarán qué versión de Silverlight ha instalado el cliente.

Otros consejos

obtuve esto de http://forums.asp.net/p/1135746/1997617.aspx#1997617 cual es el mismo enlace estu te dio.Acabo de incluir el fragmento 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
};

Encontré este sitio que detecta la versión completa de Silverlight. versión plateada (también conocido como silverlightversion.com)

Como se mencionó en los comentarios anteriores, actualmente no existe una forma directa eficiente de obtener el número de versión instalada de Silverlight (que funciona en varias plataformas de navegador).

Escribí una publicación sobre cómo solucionar este problema y detectar el número de versión principal de Silverlight (incluida la versión 3) mediante programación y de manera más eficiente usando JavaScript.

Puedes encontrar el código y la publicación en:

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

¡Buena suerte!

Environment.Version hará lo que quieras!Compatible desde Silverlight 2.0

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top