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

来源:互联网 发布:开源的数据库防火墙 编辑:程序博客网 时间:2024/05/01 23:51

摘抄自:http://blog.csdn.net/meizz/archive/2007/11/16/1887859.aspx

摘自 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 可以直接得到当前浏览器的大版本号。