Как я могу эффективно и эффективно обнаруживать версию и, если на то пошло, любую доступную информацию о экземпляре Silverlight в настоящее время работает в браузере?
Обнаружение версии с помощью Silverlight
Ответ 1
Элемент управления Silverlight имеет функцию IsVersionSupported, которая возвращает true/false, когда вы даете ему номер версии, например:
if(slPlugin.isVersionSupported("2.0")) {
alert("I haz some flavour of Silverlight 2");
Вы можете быть настолько конкретны, насколько хотите, при проверке сборки, поскольку строка версии может включать в себя все следующие:
- major - основное число
- minor - младшее число
- build - номер сборки
- ревизия - номер версии
Таким образом, мы можем проверить конкретный номер сборки следующим образом:
if(slPlugin.isVersionSupported("2.0.30523")) {
alert("I haz Silverlight 2.0.30523, but could be any revision.");
В Silverlight 1.0 Beta включено свойство control.settings.version, которое было заменено методом isVersionSupported(). Идея состоит в том, что вы не должны программировать против определенных версий Silverlight. Скорее, вы должны проверить, имеет ли клиент хотя бы версию 1.0, или 2.0 и т.д.
Как говорится, вы можете получить номер версии Silverlight в Firefox, проверив описание плагина Silverlight:
alert(navigator.plugins["Silverlight Plug-In"].description);
Показывает '2.0.30523.8' на моем компьютере.
Обратите внимание, что можно перетащить его, итерации по всем выпущенным номерам версий. Предположительно, что делает браузер BrowserHawk - они сообщают о том, какая версия Silverlight установлена клиентом.
Ответ 2
Я получил это от http://forums.asp.net/p/1135746/1997617.aspx#1997617, который является той же ссылкой Stu дал вам. Я просто включил фрагмент кода.
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
};
Ответ 3
нашел этот сайт, который обнаруживает полную версию silverlight- версия silverlight (aka silverlightversion.com)
Ответ 4
Как уже упоминалось в приведенных выше комментариях, в настоящее время нет эффективного прямого способа получить установленный номер версии Silverlight (работающий на платформе кросс-браузера).
Я написал сообщение о том, как обход этой проблемы и определить основной номер версии Silverlight (включая версию 3) программно и более эффективно с помощью JavaScript.
Код и сообщение можно найти по адресу:
Удачи!
Ответ 5
Environment.Version будет делать то, что вы хотите! Поддерживается с Silverlight 2.0
Ответ 6
Посмотрите в silverlight.js: