Определение версии с Silverlight

Как я могу эффективно и эффективно определить версию и, если на то пошло, любую доступную информацию об экземпляре Silverlight, который в настоящее время работает в браузере?

21.08.2008 18:30:49
6 ОТВЕТОВ
РЕШЕНИЕ

Элемент управления Silverlight имеет только функцию IsVersionSupported , которая возвращает истину / ложь, когда вы даете ему номер версии, например:

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

При проверке сборки вы можете быть настолько конкретны, насколько захотите, поскольку строка версии может включать в себя все следующее:

  • Major - основной номер
  • несовершеннолетний - младший номер
  • build - номер сборки
  • ревизия - номер ревизии

Таким образом, мы можем проверить конкретный номер сборки следующим образом:

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

Бета-версия Silverlight 1.0 включала свойство control.settings.version, которое было заменено методом isVersionSupported () . Идея состоит в том, что вы не должны программировать для определенных версий Silverlight. Скорее, вы должны проверить, имеет ли клиент хотя бы verion 1.0, или 2.0, и т. Д.

При этом вы можете получить номер версии Silverlight в Firefox, проверив описание плагина Silverlight:

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

Показывает «2.0.30523.8» на моем компьютере.

Обратите внимание, что его можно перебрать, перебирая все номера выпущенных версий. Предположительно, именно это и делает BrowserHawk - они сообщат, какую версию Silverlight установил клиент.

7
25.08.2008 21:37:04

Посмотрите в silverlight.js:

http://forums.asp.net/p/1135746/1997617.aspx#1997617

0
21.08.2008 18:35:34

Я получил это от http://forums.asp.net/p/1135746/1997617.aspx#1997617, по той же ссылке, что дал вам Стю . Я только что включил фрагмент кода.

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
};
2
23.05.2017 12:33:27

Как упоминалось в приведенных выше комментариях, в настоящее время не существует эффективного прямого способа получения установленного номера версии Silverlight (который работает в кросс-браузерной платформе).

Я написал пост о том, как обойти эту проблему и определить программно и более эффективно номер основной версии Silverlight (включая версию 3) с помощью JavaScript.

Вы можете найти код и сообщение на:

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

Удачи!

1
26.04.2009 09:48:13

нашел этот сайт, который обнаруживает полную версию silverlight- silverlight version (он же silverlightversion.com)

2
22.09.2009 15:24:56
Кстати, это решение на самом деле находит точный номер версии установленного плагина.
Brady Moritz 7.02.2011 15:17:26

Environment.Version будет делать то, что вы хотите! Поддерживается с Silverlight 2.0

1
4.07.2012 15:21:27