您的位置:首页 > Web前端 > JavaScript

javascript判断当前浏览器类型及版本号

2015-04-04 09:05 316 查看
在最项目的时候遇到了浏览器兼容的问题,在chrome中js初始化数据动态赋值是正常的,但是在Safari浏览器中跑初始化数据动态赋值js代码就会报错,原因是获取工程路径时出现获取错误的现象,例如通过以下代码获取工程路径:

function getRootPath(){

       var strFullPath=window.document.location.href;
       var strPath=window.document.location.pathname;
       var pos=strFullPath.indexOf(strPath);
       var prePath=strFullPath.substring(0,pos);
       var postPath=strPath.substring(0,strPath.substr(1).indexOf('/')+1);
       return(prePath);
}

在chrome浏览器会返回:http://localhost:8080

在Safari浏览器中仅返回:http://

为解决这样的问题,需要通过判断浏览器类型来获取工程路径。

获取浏览器类型及版本号:

var Sys = {};

        var ua = navigator.userAgent.toLowerCase();

        if (window.ActiveXObject)

            Sys.ie = ua.match(/msie ([\d.]+)/)[1]

        else if (document.getBoxObjectFor)

            Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]

        else if (window.MessageEvent && !document.getBoxObjectFor)

            Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1]

        else if (window.opera)

            Sys.opera = ua.match(/opera.([\d.]+)/)[1]

        else if (window.openDatabase)

            Sys.safari = ua.match(/version\/([\d.]+)/)[1];

        if(Sys.ie) document.write('IE: '+Sys.ie);

        if(Sys.firefox) document.write('Firefox: '+Sys.firefox);

        if(Sys.chrome) document.write('Chrome: '+Sys.chrome);

        if(Sys.opera) document.write('Opera: '+Sys.opera);

        if(Sys.safari) document.write('Safari: '+Sys.safari);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: