不要检测版本,要检测对象

为了编写能兼容各种浏览器的 javascript ,我们可能首先想的是用js检测各种浏览器的版本,针对性地编写不同的js代码.

  伦理片 http://www.dotdy.com/

这种思想是不好的, 是不通用的.

 

正如本文本的题 : 不要检测版本,要检测对象

 

例子:

早期的Netscape 4和 IE 3  是不支持 document.body的  , 所在我们要在我们的js中针对 这两浏览器 避免使用document.body  ,怎么做呢? 很多人一下子想到了, 检测浏览器的版本.  这样做不是最好的.

 

我们要检测浏览器 是否支持 某对象 , 而不是检测版本.

 

Js代码   收藏代码
  1. if(document.body&&document.body.getElementsByTagName)  
  2.   
  3. {  
  4.   
  5. //可以调用 document.body  
  6.   
  7. //可以调用 document.body.getElementsByTagName  
  8.   
  9.    
  10.   
  11. }  

 

 

假使if()条件不满足, 我们的页面中会少一些闪光点罢了, 但程序是不会出错的,还能正常运行.

 

下面是一个取得事件对象的例子:

 其中的window.event 就是检测对象

Js代码   收藏代码
  1. // 获得事件对象  
  2. function $EVENTObject()  
  3. {  
  4.  if(window.event)  
  5.  {   
  6.   return window.event;  
  7.  }  
  8.     var f=$EVENTObject.caller;  
  9.     while(f!=null)  
  10.     {  
  11.         var e = f.arguments[0];   
  12.   alert(e);  
  13.         if(e && (e.constructor==MouseEvent||e.constructor==Event||e.constructor==KeyboardEvent)) return e;                   
  14.         f=f.caller;  
  15.     }  
  16. }    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值