首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >告诉您使用的是哪个版本的浏览器+如果使用屏幕阅读器

告诉您使用的是哪个版本的浏览器+如果使用屏幕阅读器
EN

Stack Overflow用户
提问于 2014-02-08 17:36:15
回答 1查看 292关注 0票数 0

是否有一种方法可以判断某人在使用哪个浏览器(哪个浏览器),以及他们是否在使用屏幕阅读器?

我正在做一个网站,字面上,为每个人。我想为“第一世界”国家打造一个超级酷的JS/AJAX/PHP网站,为“第三世界”打造一个普通的HTML。

我需要知道使用的是哪个浏览器和哪个版本的浏览器,这样我就知道要加载哪个站点,并且能够查看用户是否在使用某种屏幕阅读器。通过这种方式,服务器可以加载带有所有散落的超级酷网站,或者为无效用户提供一个基本的屏幕阅读器友好站点。

我在PHP/JS方面有很好的知识基础,但不知道如何解决这个问题。

谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-08 18:02:42

您可以使用导航器对象来检测客户端浏览器。因为我们不能总是信任用户代理。

JavaScript部件:

代码语言:javascript
复制
var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = navigator.appName;
var fullVersion  = ''+parseFloat(navigator.appVersion);
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;

// In Opera, the true version is after "Opera" or after "Version"

if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+6);
 if ((verOffset=nAgt.indexOf("Version"))!=-1)
   fullVersion = nAgt.substring(verOffset+8);
}
// In MSIE, the true version is after "MSIE" in userAgent

else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
 browserName = "Microsoft Internet Explorer";
 fullVersion = nAgt.substring(verOffset+5);
}
// In Chrome, the true version is after "Chrome"

else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
 browserName = "Chrome";
 fullVersion = nAgt.substring(verOffset+7);
}
// In Safari, the true version is after "Safari" or after "Version"

else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
 browserName = "Safari";
 fullVersion = nAgt.substring(verOffset+7);
 if ((verOffset=nAgt.indexOf("Version"))!=-1)
   fullVersion = nAgt.substring(verOffset+8);
}
// In Firefox, the true version is after "Firefox"

else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
 browserName = "Firefox";
 fullVersion = nAgt.substring(verOffset+8);
}
// In most other browsers, "name/version" is at the end of userAgent

else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) <
          (verOffset=nAgt.lastIndexOf('/')) )
{
 browserName = nAgt.substring(nameOffset,verOffset);
 fullVersion = nAgt.substring(verOffset+1);
 if (browserName.toLowerCase()==browserName.toUpperCase()) {
  browserName = navigator.appName;
 }
}

// trim the fullVersion string at semicolon/space if present

if ((ix=fullVersion.indexOf(";"))!=-1)
   fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1)
   fullVersion=fullVersion.substring(0,ix);

majorVersion = parseInt(''+fullVersion,10);
if (isNaN(majorVersion)) {
 fullVersion  = ''+parseFloat(navigator.appVersion);
 majorVersion = parseInt(navigator.appVersion,10);
}

document.write(''
 +'Browser name  = '+browserName+'<br>'
 +'Full version  = '+fullVersion+'<br>'
 +'Major version = '+majorVersion+'<br>'
 +'navigator.appName = '+navigator.appName+'<br>'
 +'navigator.userAgent = '+navigator.userAgent+'<br>'
)

参见这里的演示.http://jsfiddle.net/hw4jM/3/

关于屏幕阅读器,在堆栈溢出中有一个更好的答案。https://stackoverflow.com/a/7712758/3222041

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21649428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档