其实jQuery 也可以判断浏览器类型,但是从1.9之后就删除了$.browser
所以我没有使用jQuery
测试页面:
- <html>
- <head lang="en">
- <meta charset="UTF-8">
- <title></title>
- <script type="text/javascript" src="js/jquery-1.10.1.js"></script>
- <script type="text/javascript" src="js/common_util.js"></script>
- <script type="text/javascript">
- window.onload=function(){
- // var brow = $.browser;
- // alert(brow);
- var browser = com.whuang.hsj.getBrowserVersion(true);
- document.write(browser.ver+"<br>");
- document.write("language:"+browser.lang);
- }
- </script>
- </head>
- <body>
- </body>
- </html>
(1) 在chrome中运行结果:
说明:中间一行的"36.0.1985.143"是浏览器版本号
(2)在IE8中运行结果:
(3)在IE9中运行结果:
(4)在火狐中运行结果:
但是在火狐中的版本号不对,js获取的版本号是33.0 ,但是应该是33.1,如下图:
暂时不知道什么原因,不过影响不大
核心方法:com.whuang.hsj.getBrowserVersion
参数说明:只有一个参数,用于打印浏览器名称.用于上线的项目时应该设置为false.
返回值说明:
返回的是一个对象.
- var browser = com.whuang.hsj.getBrowserVersion(false);
可以通过browser.firefox 判断是否是火狐浏览器,通过browser.chrome 判断是否是谷歌浏览器,等等.
browser.lang是浏览器语言,取值范围是['zh-cn','zh','en-us','en']
注意:browser.lang的值均是小写,并且zh-cn 是中划线,不是下划线.
com.whuang.hsj.getBrowserVersion见附件common_util.zip
com.whuang.hsj.getBrowserVersion实现
- /***
- * get browser type and browser version and language
- * @param write22
- * @returns {{}}
- */
- com.whuang.hsj.getBrowserVersion=function(write22){
- var browser = {};
- // console.dir(navigator);
- var userAgent = navigator.userAgent.toLowerCase();
- /*for(osvId in navigator){
- var value222=navigator[osvId];
- document.writeln(osvId+": "+value222+'<br>');
- }*/
- var lang22=navigator.language;
- // document.writeln(userAgent+'<br>');
- // document.writeln(navigator.appCodeName+'<br>');
- var s;
- (s = userAgent.match(/msie ([\d.]+)/)) ? browser.ie = s[1] : (s = userAgent.match(/firefox\/([\d.]+)/)) ? browser.firefox = s[1] : (s = userAgent.match(/chrome\/([\d.]+)/)) ? browser.chrome = s[1] :
- (s = userAgent.match(/opera.([\d.]+)/)) ? browser.opera = s[1] : (s = userAgent.match(/version\/([\d.]+).*safari/)) ? browser.safari = s[1] : 0;
- var version = "";
- if (browser.ie) {
- version = browser.ie;
- if(write22 && write22!=false && write22!='false'){
- document.writeln('IE<br>');
- }
- if(!browser.lang ||browser.lang==undefined){
- lang22=navigator.browserLanguage;
- browser.systemLanguage=navigator.systemLanguage ;
- browser.userLanguage=navigator.userLanguage;
- }
- }
- else
- if (browser.firefox) {
- version = browser.firefox;
- browser.mozilla=browser.firefox;
- if(write22 && write22!=false && write22!='false'){
- document.writeln('firefox<br>');
- }
- }
- else
- if (browser.chrome) {
- version = browser.chrome;
- if(write22 && write22!=false && write22!='false'){
- document.writeln('chrome<br>');
- }
- }
- else
- if (browser.opera) {
- version = browser.opera;
- if(write22 && write22!=false && write22!='false'){
- document.writeln('opera<br>');
- }
- }
- else
- if (browser.safari) {
- version = browser.safari;
- if(write22 && write22!=false && write22!='false'){
- document.writeln('Safari<br>');
- }
- }
- else {
- version = 'unknown browser';
- }
- browser.ver=version;
- if(lang22 && lang22!=undefined)
- {
- browser.lang=lang22.toLowerCase();
- }
- return browser;
- }
参考: