jquery判斷當前瀏覽器的實現(xiàn)代碼
寫了一個判斷當前瀏覽器類型及版本的方法,只在IE 8/11 、谷歌 、360 瀏覽器(不完全)上測試過,需要用到j(luò)query
核心代碼:
;(function($, window, document,undefined){ if(!window.browser){ var userAgent = navigator.userAgent.toLowerCase(),uaMatch; window.browser = {} /** * 判斷是否為ie */ function isIE(){ return ("ActiveXObject" in window); } /** * 判斷是否為谷歌瀏覽器 */ if(!uaMatch){ uaMatch = userAgent.match(/chrome\/([\d.]+)/); if(uaMatch!=null){ window.browser['name'] = 'chrome'; window.browser['version'] = uaMatch[1]; } } /** * 判斷是否為火狐瀏覽器 */ if(!uaMatch){ uaMatch = userAgent.match(/firefox\/([\d.]+)/); if(uaMatch!=null){ window.browser['name'] = 'firefox'; window.browser['version'] = uaMatch[1]; } } /** * 判斷是否為opera瀏覽器 */ if(!uaMatch){ uaMatch = userAgent.match(/opera.([\d.]+)/); if(uaMatch!=null){ window.browser['name'] = 'opera'; window.browser['version'] = uaMatch[1]; } } /** * 判斷是否為Safari瀏覽器 */ if(!uaMatch){ uaMatch = userAgent.match(/safari\/([\d.]+)/); if(uaMatch!=null){ window.browser['name'] = 'safari'; window.browser['version'] = uaMatch[1]; } } /** * 最后判斷是否為IE */ if(!uaMatch){ if(userAgent.match(/msie ([\d.]+)/)!=null){ uaMatch = userAgent.match(/msie ([\d.]+)/); window.browser['name'] = 'ie'; window.browser['version'] = uaMatch[1]; }else{ /** * IE10 */ if(isIE() && !!document.attachEvent && (function(){"use strict";return !this;}())){ window.browser['name'] = 'ie'; window.browser['version'] = '10'; } /** * IE11 */ if(isIE() && !document.attachEvent){ window.browser['name'] = 'ie'; window.browser['version'] = '11'; } } } /** * 注冊判斷方法 */ if(!$.isIE){ $.extend({ isIE:function(){ return (window.browser.name == 'ie'); } }); } if(!$.isChrome){ $.extend({ isChrome:function(){ return (window.browser.name == 'chrome'); } }); } if(!$.isFirefox){ $.extend({ isFirefox:function(){ return (window.browser.name == 'firefox'); } }); } if(!$.isOpera){ $.extend({ isOpera:function(){ return (window.browser.name == 'opera'); } }); } if(!$.isSafari){ $.extend({ isSafari:function(){ return (window.browser.name == 'safari'); } }); } } })(jQuery, window, document);
使用方法:
//使用方式 console.log(window.browser); console.log($.isIE()); console.log($.isChrome());
腳本之家小編特提供的完整測試代碼:
<html> <head> <title>jquery 瀏覽器判斷</title> </head> <body> <script src="http://demo.jb51.net/jslib/jquery/jquery-1.8.3.min.js"></script> <script type="text/javascript"> (function($, window, document,undefined){ if(!window.browser){ var userAgent = navigator.userAgent.toLowerCase(),uaMatch; window.browser = {} /** * 判斷是否為ie */ function isIE(){ return ("ActiveXObject" in window); } /** * 判斷是否為谷歌瀏覽器 */ if(!uaMatch){ uaMatch = userAgent.match(/chrome\/([\d.]+)/); if(uaMatch!=null){ window.browser['name'] = 'chrome'; window.browser['version'] = uaMatch[1]; } } /** * 判斷是否為火狐瀏覽器 */ if(!uaMatch){ uaMatch = userAgent.match(/firefox\/([\d.]+)/); if(uaMatch!=null){ window.browser['name'] = 'firefox'; window.browser['version'] = uaMatch[1]; } } /** * 判斷是否為opera瀏覽器 */ if(!uaMatch){ uaMatch = userAgent.match(/opera.([\d.]+)/); if(uaMatch!=null){ window.browser['name'] = 'opera'; window.browser['version'] = uaMatch[1]; } } /** * 判斷是否為Safari瀏覽器 */ if(!uaMatch){ uaMatch = userAgent.match(/safari\/([\d.]+)/); if(uaMatch!=null){ window.browser['name'] = 'safari'; window.browser['version'] = uaMatch[1]; } } /** * 最后判斷是否為IE */ if(!uaMatch){ if(userAgent.match(/msie ([\d.]+)/)!=null){ uaMatch = userAgent.match(/msie ([\d.]+)/); window.browser['name'] = 'ie'; window.browser['version'] = uaMatch[1]; }else{ /** * IE10 */ if(isIE() && !!document.attachEvent && (function(){"use strict";return !this;}())){ window.browser['name'] = 'ie'; window.browser['version'] = '10'; } /** * IE11 */ if(isIE() && !document.attachEvent){ window.browser['name'] = 'ie'; window.browser['version'] = '11'; } } } /** * 注冊判斷方法 */ if(!$.isIE){ $.extend({ isIE:function(){ return (window.browser.name == 'ie'); } }); } if(!$.isChrome){ $.extend({ isChrome:function(){ return (window.browser.name == 'chrome'); } }); } if(!$.isFirefox){ $.extend({ isFirefox:function(){ return (window.browser.name == 'firefox'); } }); } if(!$.isOpera){ $.extend({ isOpera:function(){ return (window.browser.name == 'opera'); } }); } if(!$.isSafari){ $.extend({ isSafari:function(){ return (window.browser.name == 'safari'); } }); } } })(jQuery, window, document); //使用方式 alert(window.browser.name); //下面是ie F2中測試可以看到效果 console.log(window.browser); console.log($.isIE()); console.log($.isChrome()); </script> </body> </html>
相關(guān)文章
jQuery實現(xiàn)模擬flash頭像裁切上傳功能示例
這篇文章主要介紹了jQuery實現(xiàn)模擬flash頭像裁切上傳功能,結(jié)合實例形式分析了jQuery圖像剪切與文件傳輸相關(guān)操作技巧,需要的朋友可以參考下2016-12-12jQuery 1.9.1源碼分析系列(十)事件系統(tǒng)之綁定事件
這篇文章主要介紹了jQuery 1.9.1源碼分析系列(十) 事件系統(tǒng)——綁定事件的相關(guān)資料,需要的朋友可以參考下2015-11-11基于PHP和Mysql相結(jié)合使用jqGrid讀取數(shù)據(jù)并顯示
jqGrid可以動態(tài)讀取和加載外部數(shù)據(jù),本文將結(jié)合PHP和Mysql給大家講解如何使用jqGrid讀取數(shù)據(jù)并顯示,以及可以通過輸入關(guān)鍵字查詢數(shù)據(jù)的ajax交互過程2015-12-12jQuery實現(xiàn)對網(wǎng)頁節(jié)點的增刪改查功能示例
這篇文章主要介紹了jQuery實現(xiàn)對網(wǎng)頁節(jié)點的增刪改查功能,涉及jQuery針對網(wǎng)頁DOM節(jié)點的獲取、屬性修改等相關(guān)操作技巧,需要的朋友可以參考下2017-09-09ASP.NET jQuery 實例6 (實現(xiàn)CheckBoxList成員全選或全取消)
ASP.NET jQuery 實例6 (實現(xiàn)CheckBoxList成員全選或全取消) ,需要的朋友可以參考下。2012-01-01jQuery事件綁定用法詳解(附bind和live的區(qū)別)
這篇文章主要介紹了jQuery事件綁定用法,結(jié)合實例形式較為詳細的分析了jQuery事件綁定的實現(xiàn)原理與相關(guān)注意事項,并附帶了相關(guān)綁定方法的使用說明,重點介紹了bind和live的區(qū)別,需要的朋友可以參考下2016-01-01