如何有效地检测版本,以及有关当前在浏览器上运行的Silverlight实例的任何可用信息?
答案 0 :(得分:7)
Silverlight控件只有一个IsVersionSupported function,当你给它一个版本号时会返回true / false,例如:
if(slPlugin.isVersionSupported("2.0")) {
alert("I haz some flavour of Silverlight 2");
在检查构建时,您可以根据需要进行具体操作,因为版本字符串可以包含以下所有内容:
因此我们可以按如下方式检查特定的内部版本号:
if(slPlugin.isVersionSupported("2.0.30523")) {
alert("I haz Silverlight 2.0.30523, but could be any revision.");
Silverlight 1.0 Beta included a control.settings.version property, which was replaced with the isVersionSupported() method。这个想法是你不应该针对特定版本的Silverlight进行编程。相反,您应该检查客户端是否至少 verion 1.0或2.0等。
话虽如此,您可以通过查看Silverlight插件说明来获取Firefox中的Silverlight版本号:
alert(navigator.plugins["Silverlight Plug-In"].description);
在我的电脑上显示“2.0.30523.8”。
请注意,可以通过迭代所有已发布的版本号来强制它。 Presumably that's what BrowserHawk does - 他们会报告客户端安装了哪个版本的Silverlight。
答案 1 :(得分: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
};
答案 2 :(得分:2)
发现此网站检测到Silverlight的完整版本 - silverlight version(又名silverlightversion.com)
答案 3 :(得分:1)
如上述评论中所述,目前没有有效的直接方式来获取已安装的Silverlight版本号(适用于跨浏览器平台)。
我写了一篇关于如何解决此问题的帖子,并使用JavaScript以编程方式更高效地检测Silverlight主版本号(包括版本3)。
您可以在以下网址找到代码和帖子:
祝你好运!答案 4 :(得分:1)
Environment.Version会做你想要的!自Silverlight 2.0起支持
答案 5 :(得分:0)
看看silverlight.js: