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的事件穿透技术实在是非常牛,我至今都没有研究的很清楚。
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的事件穿透技术实在是非常牛,我至今都没有研究的很清楚。
相关文章推荐
- Google Maps API 2.0解析(15-GXslt和GXmlHttp实现AJAX)
- Google Maps API 2.0解析(5-GPoint GSize GBounds)
- Google Maps API 2.0解析(11-GCopyrightCollection动态向图片服务器请求代码)
- Google Maps API 2.0解析(16-GLog进行输出和调试的类)
- Google Maps API 2.0解析(6-GLatLng GLatLngBounds GLngSegment GLatSegment经纬度支持的类)
- Google Maps API 2.0解析(13-支持以前1.0版本的GMap)
- Google Maps API 2.0解析(11-GKeyboardHandler支持键盘操作的类)
- Google Maps API 2.0解析(7-GTicks和地图图片相关的函数)
- Google Maps API 2.0解析(17-GSmallMapControl和GSmallZoomControl两个简单的控件)
- Google Maps API 2.0解析(8-GDragPanel dragPoint用来支持拖动的类)
- Google Maps API 2.0解析(9-GProjection GMercatorProjection关于投影坐标系统)
- Google Maps API 2.0解析(18-GValidateKey进行api key验证的函数)
- Google Maps API 2.0解析(10-GMapType GTileLayer _GoogleMapMercSpec _KeyholeMapMercSpec地图类型)
- Google Maps API 2.0解析(19-GArrow一直不为人知的一种标注)
- Google Maps API 2.0解析(3-GEvent事件功能支持)
- Google Maps API 2.0解析(0-序言)
- Google Maps API 2.0解析(14-接口方法定义)
- Google Maps API 2.0解析(1-API加载)
- Google Maps API 2.0解析(4-公用函数)
- 使用Google Maps Javascript API实现反向地址解析