2011-12-14 3 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のバージョン番号が(おそらく)7.0のようなものなので、IEではうまくいきます。それはFirefoxの3.6.12(数字に自動キャストできない)のために破損します。

browse.Versionを文字列ではなく数字に変換する必要があります。数字以外の可能性も考慮してください。私はvb.netの世界でこれのための標準的なあらかじめ作られた解決策があると確信しています。

+0

を< 6.0それでは、私の状況を改善するものはありますか? –

0

あなたはこのような何か行うことができます:バージョンのみの場合、ブラウザの種類=「IE」を見られるように...ブラウザは=「IE」なら、バージョンならば、私はコードを書き換える場合

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 
関連する問題