$.browser.version を使用すると、不正確な点がよくあります。私は最近それらを発見しましたが、それらが包括的であるかどうかはわかりません。
javasript の navigator.userAgent.indexOf("MSIE 8.0") を使用した結果は同じです。
1. ウェブブラウザを使用して htm および html ページをロードします。たとえば、私のマシンは IE9 ですが、ウェブブラウザを介してロードした後、$. browser.version メソッドを取得するとバージョンが 7.0 になり、「
この問題の解決策は、バックグラウンドでレジストリを介して取得することです:
private int GetIEVersion()
{
using (Microsoft.Win32.RegistryKey versionKey = Microsoft.Win32.Registry .LocalMachine.OpenSubKey(@"SoftwareMicrosoftInternet Explorer"))
{
string version = versionKey.GetValue("Version").ToString();
int iVersion = int.Parse( version.Substring(0 , 1));
return iVersion;
}
2. x-ua-compatibility " content="IE=5;IE=7;IE=8;"/> このタグを追加すると、私のマシンは IE9 になり、$.browser.version で取得されるバージョンは 8.0 になります。 。
3. ネストされた Iframe の場合、外側の層が IE8 で解析され、内側の層が IE9 で解析される場合、内側の層で取得されるバージョンは IE9 ですが、ページは実際には次のように解析されます。 IE8では、実際の実行と判定が一致しない問題が発生します。
このような状況が発生した場合は、内部分析と外部分析による同時判断によって解決する必要があります。