PPK提供的浏览器类型及版本检测方法

简介: 一个常用但是被高估的Javascript函数就是浏览器检测。有些时候,你想给出一个说明或者加载一个页面来提示用户,以免使用Safari等浏览器。 使用方法: Browser name: BrowserDetect.

      一个常用但是被高估的Javascript函数就是浏览器检测。有些时候,你想给出一个说明或者加载一个页面来提示用户,以免使用Safari等浏览器。

使用方法:

Browser name: BrowserDetect.browser 
Browser version: BrowserDetect.version 
OS name: BrowserDetect.OS 

 

var  BrowserDetect  =  {
    init: 
function  () {
        
this .browser  =   this .searchString( this .dataBrowser)  ||   " An unknown browser " ;
        
this .version  =   this .searchVersion(navigator.userAgent)
            
||   this .searchVersion(navigator.appVersion)
            
||   " an unknown version " ;
        
this .OS  =   this .searchString( this .dataOS)  ||   " an unknown OS " ;
    },
    searchString: 
function  (data) {
        
for  ( var  i = 0 ;i < data.length;i ++ )    {
            
var  dataString  =  data[i].string;
            
var  dataProp  =  data[i].prop;
            
this .versionSearchString  =  data[i].versionSearch  ||  data[i].identity;
            
if  (dataString) {
                
if  (dataString.indexOf(data[i].subString)  !=   - 1 )
                    
return  data[i].identity;
            }
            
else   if  (dataProp)
                
return  data[i].identity;
        }
    },
    searchVersion: 
function  (dataString) {
        
var  index  =  dataString.indexOf( this .versionSearchString);
        
if  (index  ==   - 1 return ;
        
return  parseFloat(dataString.substring(index + this .versionSearchString.length + 1 ));
    },
    dataBrowser: [
        {
            string: navigator.userAgent,
            subString: 
" Chrome " ,
            identity: 
" Chrome "
        },
        {     string: navigator.userAgent,
            subString: 
" OmniWeb " ,
            versionSearch: 
" OmniWeb/ " ,
            identity: 
" OmniWeb "
        },
        {
            string: navigator.vendor,
            subString: 
" Apple " ,
            identity: 
" Safari " ,
            versionSearch: 
" Version "
        },
        {
            prop: window.opera,
            identity: 
" Opera "
        },
        {
            string: navigator.vendor,
            subString: 
" iCab " ,
            identity: 
" iCab "
        },
        {
            string: navigator.vendor,
            subString: 
" KDE " ,
            identity: 
" Konqueror "
        },
        {
            string: navigator.userAgent,
            subString: 
" Firefox " ,
            identity: 
" Firefox "
        },
        {
            string: navigator.vendor,
            subString: 
" Camino " ,
            identity: 
" Camino "
        },
        {        
//  for newer Netscapes (6+)
            string: navigator.userAgent,
            subString: 
" Netscape " ,
            identity: 
" Netscape "
        },
        {
            string: navigator.userAgent,
            subString: 
" MSIE " ,
            identity: 
" Explorer " ,
            versionSearch: 
" MSIE "
        },
        {
            string: navigator.userAgent,
            subString: 
" Gecko " ,
            identity: 
" Mozilla " ,
            versionSearch: 
" rv "
        },
        {         
//  for older Netscapes (4-)
            string: navigator.userAgent,
            subString: 
" Mozilla " ,
            identity: 
" Netscape " ,
            versionSearch: 
" Mozilla "
        }
    ],
    dataOS : [
        {
            string: navigator.platform,
            subString: 
" Win " ,
            identity: 
" Windows "
        },
        {
            string: navigator.platform,
            subString: 
" Mac " ,
            identity: 
" Mac "
        },
        {
               string: navigator.userAgent,
               subString: 
" iPhone " ,
               identity: 
" iPhone/iPod "
        },
        {
            string: navigator.platform,
            subString: 
" Linux " ,
            identity: 
" Linux "
        }
    ]

};
BrowserDetect.init();
相关文章
|
2月前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
2月前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
364 9
|
2月前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
128 1
|
3月前
|
Web App开发 开发者
|
3月前
|
算法 安全 前端开发
基于postMessage和BroadcastChannel实现浏览器跨Tab窗口通信的方法介绍
基于postMessage和BroadcastChannel实现浏览器跨Tab窗口通信的方法介绍
122 0
|
5月前
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
153 1
|
7月前
|
移动开发 前端开发 JavaScript
解决浏览器兼容性问题的方法
解决浏览器兼容性问题的方法
|
6月前
|
移动开发 前端开发 JavaScript
解决浏览器兼容性问题的方法
解决浏览器兼容性问题的方法
|
7月前
|
Web App开发 IDE Java
自动化测试谷歌浏览器和其驱动版本差不多却还是报错The chromedriver version (121.0.6167.184) detected in PATH at DPythonchromed
自动化测试谷歌浏览器和其驱动版本差不多却还是报错The chromedriver version (121.0.6167.184) detected in PATH at DPythonchromed
155 2
|
6月前
|
Web App开发
软件开发常见流程之移动端调试方法,利用Chrome(谷歌浏览器)的模拟手机调试,搭建本地Web服务器,手机和服务器在一个局域网,通过手机访问服务器,使用服务器,利用ip实现域名访问
软件开发常见流程之移动端调试方法,利用Chrome(谷歌浏览器)的模拟手机调试,搭建本地Web服务器,手机和服务器在一个局域网,通过手机访问服务器,使用服务器,利用ip实现域名访问