Silverlight的版本检测

时间:2020-03-05 18:41:41  来源:igfitidea点击:

如何有效且有效地检测版本,以及有关当前正在浏览器上运行的Silverlight实例的任何可用信息?

解决方案

回答

看一下silverlight.js:

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

回答

我是从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
};

回答

Silverlight控件仅具有IsVersionSupported函数,当我们为其提供版本号时,该函数将返回true / false,例如:

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 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。

回答

如以上注释中所述,目前尚无有效的直接方法来获取已安装的Silverlight版本号(可在跨浏览器平台上运行)。

我写了一篇文章,介绍如何解决此问题并使用JavaScript以编程方式更有效地检测Silverlight主版本号(包括版本3)。

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

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

祝你好运!

回答

发现此站点,该站点检测silverlightsilverlight版本的完整版本(aka silverlightversion.com)