IE8发布后,市场份额一直在增加。由于Windows 7在市场上的当前反应是相当不错的,我相信随着Windows 7的推出,IE8的市场份额将继续上升。
对于网站所有者来说,除了与IE8兼容(实际上,它与W3C标准兼容)外,还需要注意另一个细节,即如何判断当前用户是否正在使用IE8。很多哥们都说过,这不容易吗?仅使用UserAgent是不够的。根据当前的UserAgent字符串,检查是否为IE8?这类似于如何判断詹博兄弟给出的.NET版本。 (alert(navigator.userAgent);)
如果您真的认为使用此字符串可以正确确定目标浏览器的版本号,那将显得有些愚蠢和天真。 IE8作为与W3C标准完全兼容的Microsoft浏览器,总共提供了三种渲染引擎,即IE8标准模式,IE7兼容模式和IE6 Quirks模式,以满足世界上大多数网站的需求。 IE8的UserAgent字符串还将根据不同的呈现引擎动态采用不同的字符串。例如,以下三种情况:
1.当最终用户访问您的网站时,他单击了地址栏右侧的兼容模式按钮;
2.您网站上的相应页面使用IE7兼容的字符串,即在Web服务器(IIS / Apache)的HTTP标头信息中进行了相应的设置;
3.为了帮助贵公司的网站页面在IE8下显示更兼容,Microsoft已将贵公司的网站地址添加到IE8兼容性列表中的Windows Update维护列表中(如果您的网站在此列表中,并且您相信说明您的网站实际上与W3C标准完全兼容,因此,如果您想从此列表中删除它,则可以发送电子邮件要求删除。
然后在以上三种情况下,您获得的UseAgent字符串将是IE7而不是IE8。
那么如何正确确定当前浏览器是否为IE8?使用以下代码:


代码
1

functiongetInternetExplorerVersion()
2

//返回WindowsInternetExplorerora-1的版本
3

//(指示使用其他浏览器)。
4



{
5

varrv = -1;
6

//返回值假定失败。
7


if(navigator.appName =='MicrosoftInternetExplorer')

{
8

varua = navigator.userAgent;
9

varre = newRegExp(“ MSIE([0-9] {1,} [\。0-9] {0,})”);
10

if(re.exec(ua)!= null)
11

rv = parseFloat(RegExp。$1);
12

}
13

returnrv;
14

}
15


functioncheckVersion()

{
16

varmsg =“您正在使用WindowsInternetExplorer。”;
17

varver = getInternetExplorerVersion();
18


if(ver>-1)

{
19

if(ver> =8.0)
20

msg =“您正在使用WindowsInternetExplorer的最新副本。”
21

其他
22

msg =“您应该升级Windows InternetExplorer的副本。”;
23

}
24

alert(msg);
25

}
26

实际上,这个问题是由我在前端时间负责的客户提出的。来自美国的好伙伴帮助我解决了这个问题。在他的帖子中,您可能还感兴趣其他内容,例如如何确定当前浏览器是否支持WebSlice,Accelerator和Visual Search。您也可以一起阅读。


浏览器是否支持WebSlice,和可视搜索?
1functionWebSliceSupported()
2 {
3return(typeof(window.external.AddToFavoritesBar)!=“ undefined”);
4}
5functionAcceleratorSupported()
6 {
7return(typeof(window.external.AddService)!=“ undefined”);
8}
9functionVisualSearchSupported()
10 {
11return(typeof(window.external.AddService)!=“ undefined”);
12}
13
[文章来自:快乐大哥博客]
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shumachanpin/article-322657-1.html
哈哈