11

我怎样才能有效地检测版本以及有关当前在浏览器上运行的Silverlight实例的任何可用信息?

4

6 回答 6

7

Silverlight 控件只有一个IsVersionSupported 函数,当你给它一个版本号时它会返回真/假,例如:

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。

于 2008-08-25T21:31:54.170 回答
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
};
于 2008-08-21T18:42:24.017 回答
2

找到了检测完整版 silverlight - silverlight 版本的网站(又名 silverlightversion.com)

于 2009-09-22T15:24:56.483 回答
1

如上述评论中所述,目前没有有效的直接方法来获取已安装的 Silverlight 版本号(适用于跨浏览器平台)。

我写了一篇关于如何解决这个问题并使用 JavaScript 以编程方式和更有效地检测 Silverlight 主要版本号(包括版本 3)的帖子。

您可以在以下位置找到代码和帖子:

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

祝你好运!

于 2009-04-26T09:48:13.360 回答
1

Environment.Version 会做你想做的事!自 Silverlight 2.0 起受支持

于 2012-07-04T15:21:27.953 回答
0

查看 silverlight.js:

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

于 2008-08-21T18:35:34.423 回答