meizz的专栏

梅花雪·疏影横斜

原创 一段判断多种浏览器类型及版本号的脚本代码

摘自 jsframework 框架:

window["MzBrowser"]={};(function()
{
  if(MzBrowser.platform) return;
  var ua = window.navigator.userAgent;
  MzBrowser.platform = window.navigator.platform;

  MzBrowser.firefox = ua.indexOf("Firefox")>0;
  MzBrowser.opera = typeof(window.opera)=="object";
  MzBrowser.ie = !MzBrowser.opera && ua.indexOf("MSIE")>0;
  MzBrowser.mozilla = window.navigator.product == "Gecko";
  MzBrowser.netscape= window.navigator.vendor=="Netscape";
  MzBrowser.gecko = ua.indexOf('Gecko')>-1 && ua.indexOf('KHTML')==-1;
  MzBrowser.safari  = ua.indexOf("Safari")>-1;

  if(MzBrowser.firefox) var re = /Firefox(\s|\/)(\d+(\.\d+)?)/;
  else if(MzBrowser.ie) var re = /MSIE( )(\d+(\.\d+)?)/;
  else if(MzBrowser.opera) var re = /Opera(\s|\/)(\d+(\.\d+)?)/;
  else if(MzBrowser.netscape) var re = /Netscape(\s|\/)(\d+(\.\d+)?)/;
  else if(MzBrowser.safari) var re = /Version(\/)(\d+(\.\d+)?)/;
  else if(MzBrowser.mozilla) var re = /rv(\:)(\d+(\.\d+)?)/;

  if("undefined"!=typeof(re)&&re.test(ua))
    MzBrowser.version = parseFloat(RegExp.$2);
})();

调用的时候可以通过 MzBrowser.ie 、MzBrowser.firefox 等 true/false 的判断条件;而通过 MzBrowser.version 可以直接得到当前浏览器的大版本号。 

发表于 @ 2007年11月16日 09:55:00|评论(loading...)|编辑

旧一篇: IE6的BUG:window.onload里用innerHTML创建的img会忽略本地缓存

评论

#iamybj 发表于2007-11-18 12:09:08  IP: 60.207.117.*
看起来 不错 ,比老外们写的简洁!
不过你开始这3句
if(MzBrowser.platform) return;
var ua = window.navigator.userAgent;
MzBrowser.platform = window.navigator.platform;
是什么意思呢?
还有就是mozilla 和 firefox到底有什么区别,需要区别吗?
请赐教
#iamybj 发表于2007-11-18 12:29:35  IP: 60.207.117.*
大版本号?
为什么不是全部的版本号?
#net_lover 发表于2007-11-19 08:37:42  IP: 219.237.16.*
good,up
#meizz 发表于2007-11-22 16:41:26  IP: 220.181.38.*
if(MzBrowser.platform) return;
//...
MzBrowser.platform = window.navigator.platform;

这两句并没有太多的含义,只是加上这两句之后,这段代码在一个页面里即使被加载N次,也只会运行一次。
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © meizz