2008-08-21 34 views

回答

7

Silverlight控件只有一個IsVersionSupported function,當你給它一個版本號,返回真/假,如:

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進行編程。相反,你應該檢查客戶端是否有至少優化版本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版本。

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

發現這個網站檢測的完整版本silverlight- silverlight version(又名silverlightversion.com)

+0

這個解決方案實際上找到了安裝插件的確切版本號。 – 2011-02-07 15:17:26

1

環境。版本將做你想做的!自Silverlight 2.0以來支持