使用 Silverlight 进行版本检测
-
09-06-2019 - |
题
我如何高效且有效地检测版本以及有关实例的任何可用信息 银光 当前在浏览器上运行?
解决方案
Silverlight控件只有一个 IsVersionSupported 函数, ,当您给它一个版本号时,它会返回 true / false,例如:
if(slPlugin.isVersionSupported("2.0")) {
alert("I haz some flavour of Silverlight 2");
在检查构建时,您可以根据需要具体指定,因为版本字符串可以包含以下所有内容:
- 主要 - 主要号码
- 次要 - 次要编号
- 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 版本。
其他提示
我从那里得到这个 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
};
发现这个网站检测到silverlight的完整版本- 银光版本 (又名 silverlightversion.com)
正如上面评论中提到的,目前没有有效的直接方法来获取已安装的 Silverlight 版本号(跨浏览器平台)。
我写了一篇文章,介绍如何解决此问题并使用 JavaScript 以编程方式更有效地检测 Silverlight 主要版本号(包括版本 3)。
您可以在以下位置找到代码和帖子:
祝你好运!
Environment.Version 会做你想做的!自 Silverlight 2.0 起受支持
查看 silverlight.js: