您的位置:首页 > 编程语言 > Go语言

Google Maps API 2.0解析(2-GBrowser)

2006-04-28 00:56 656 查看
//浏览器属性对象
var browser;
//支持的浏览器数组
var Ac=["opera","msie","safari","firefox","mozilla"];
//操作系统列表
var Mc=["x11;","macintosh","windows"];
//浏览器信息相关的类,构造函数参数为navigator.userAgent
function GBrowser(a)
{
this.type=-1;//浏览器类型
this.os=-1;//操作系统类型
this.version=0;//浏览器版本号
this.revision=0;//浏览器修订版号
var a=a.toLowerCase();
//获取浏览器类型和版本
for(var b=0;b<Ac.length;b++)
{
var c=Ac[b];
if(a.indexOf(c)!=-1)
{
this.type=b;
var d=new RegExp(c+"[ /]?([0-9]+(.[0-9]+)?)");
if(d.exec(a)!=null)
{
this.version=parseFloat(RegExp.$1)
}
break
}
}
//获取操作系统类型
for(var b=0;b<Mc.length;b++)
{
var c=Mc[b];
if(a.indexOf(c)!=-1)
{
this.os=b;
break
}
}
//获取浏览器修订版号
if(this.type==4||this.type==3)
{
if(/\brv:\s*(\d+\.\d+)/.exec(a))
{
this.revision=parseFloat(RegExp.$1)
}
}
}
//是否FireFox或mozilla浏览器
GBrowser.prototype.isFirefox=function()
{
return this.type==3||this.type==4
};
//是否不支持事件穿透,事件穿透(我不知道正式名称叫什么)是指透明的HTML对象不影响被其遮住的层的事件捕获
GBrowser.prototype.NoEventPenetrate=function()
{
return this.type==4&&this.revision<1.7
};

在这个版本里面Google终于将这个类对象化了,我记得在以前的版本之中Google释放出了一个browser变量(不知道为什么这个变量药用那么常用的名称),结果和我的网站统计代码冲突,这个缺点这次终于改正了,不过Google的事件穿透技术实在是非常牛,我至今都没有研究的很清楚。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: