2011-12-14 69 views
0
 Dim browse As HttpBrowserCapabilities 
     browse = Request.Browser 
     Dim browser, version As String 
     browser = browse.Browser.ToString 
     version = browse.Version.ToString 
     If browser = "IE" Then 
      If version < 6.0 Then 
      pnlOldVersion.Visible = True 
      UpdatePanel1.Visible = False 
      UpdatePanel8.Visible = False 
      Else 'do nothing 
     End If 

爲什麼此代碼會導致Firefox瀏覽器的問題?有任何想法嗎?問題與Firefox和此代碼的瀏覽器版本

感謝, 艾琳

回答

1

我不說話的Visual Basic,但你在我其他的答案引用了錯誤信息:

[InvalidCastException的:從字符串轉換" 3.6.12 "到類型'Double'無效]

您的代碼存在缺陷:您正在比較字符串(由toString創建)和數字(6.0)。

這適用於IE,因爲你的IE的版本號是(可能)像7.0。它打破了Firefox的3.6.12(它不能被自動轉換爲數字)。

您需要將browse.Version轉換爲數字而不是字符串,從而考慮到非數字的可能性。我確信在vb.net世界有這樣的標準預製解決方案。

+0

如果我重寫代碼,以便該版本只看着如果瀏覽器類型=「IE」 ......如果瀏覽器=「IE」那如果版本< 6.0然後做一些將補救我的情況? – 2011-12-14 22:47:35

0

你可以做這樣的事情:

Dim browser As HttpBrowserCapabilities = Request.Broser 
Dim min As Integer = 6 
Dim version As Decimal = browser.Version 

If browser.Type.Substring(0, 1).Equals("I") Then 
    'browser.Type return me "InternetExplorer11" 
    If version < min Then 
     pnlOldVersion.Visible = True 
     UpdatePanel1.Visible = False 
     UpdatePanel8.Visible = False 
    End If 
End If 
相關問題