Rumah >hujung hadapan web >tutorial js >Encapsulated js menentukan sistem pengendalian dan kemahiran perkongsian kod_javascript pelayar
Ringkasan:
Untuk pembangunan bahagian hadapan, tugas kami yang paling penting ialah keserasian, keserasian sistem, keserasian penyemak imbas, dsb. Hari ini saya akan berkongsi kaedah yang saya rangkumkan dalam projek untuk menentukan sistem pengendalian dan pelayar.
Sistem pengendalian:
var os = (function() { var UserAgent = navigator.userAgent.toLowerCase(); return { isIpad : /ipad/.test(UserAgent), isIphone : /iphone os/.test(UserAgent), isAndroid : /android/.test(UserAgent), isWindowsCe : /windows ce/.test(UserAgent), isWindowsMobile : /windows mobile/.test(UserAgent), isWin2K : /windows nt 5.0/.test(UserAgent), isXP : /windows nt 5.1/.test(UserAgent), isVista : /windows nt 6.0/.test(UserAgent), isWin7 : /windows nt 6.1/.test(UserAgent), isWin8 : /windows nt 6.2/.test(UserAgent), isWin81 : /windows nt 6.3/.test(UserAgent) }; }());
Jika anda ingin menentukan sama ada sistem itu ialah iPad, anda hanya perlu menentukan sama ada(os.isIpad) {}.
Pelayar:
var bw = (function() { var UserAgent = navigator.userAgent.toLowerCase(); return { isUc : /ucweb/.test(UserAgent), // UC浏览器 isChrome : /chrome/.test(UserAgent.substr(-33,6)), // Chrome浏览器 isFirefox : /firefox/.test(UserAgent), // 火狐浏览器 isOpera : /opera/.test(UserAgent), // Opera浏览器 isSafire : /safari/.test(UserAgent) && !/chrome/.test(UserAgent), // safire浏览器 is360 : /360se/.test(UserAgent), // 360浏览器 isBaidu : /bidubrowser/.test(UserAgent), // 百度浏览器 isSougou : /metasr/.test(UserAgent), // 搜狗浏览器 isIE6 : /msie 6.0/.test(UserAgent), // IE6 isIE7 : /msie 7.0/.test(UserAgent), // IE7 isIE8 : /msie 8.0/.test(UserAgent), // IE8 isIE9 : /msie 9.0/.test(UserAgent), // IE9 isIE10 : /msie 10.0/.test(UserAgent), // IE10 isIE11 : /msie 11.0/.test(UserAgent), // IE11 isLB : /lbbrowser/.test(UserAgent), // 猎豹浏览器 isWX : /micromessenger/.test(UserAgent), // 微信内置浏览器 isQQ : /qqbrowser/.test(UserAgent) // QQ浏览器 }; }());
]
Ringkasan:
Penyemak imbas semuanya diuji oleh saya secara peribadi Yang mungkin menghadapi masalah ialah pelayar krom, kerana kebanyakan pelayar menggunakan kernel WebKit, jadi saya memintas pelayar krom untuk membezakannya. Jika kedudukan maklumat navigator chrome atau panjang selepas chrome berubah pada masa hadapan, masalah mungkin mudah berlaku, tetapi nampaknya ok buat masa ini.
Sekarang kerana penyemak imbas UC mudah alih sering menyekat iklan Baidu, tetapi tidak menyekat iklan Google, kami boleh menambah untuk menentukan sama ada ia adalah penyemak imbas UC Jika tidak, ia akan memaparkan iklan Baidu, jika ada, ia akan memaparkan iklan Google
if(navigator.userAgent.indexOf('UCBrowser') > -1) { alert("uc浏览器"); }else{ //不是uc浏览器执行的操作 }
Malah, beberapa operasi khas penyemak imbas tertentu boleh dilakukan melalui
JS mendapat maklumat penyemak imbas
Nama kod penyemak imbas: navigator.appCodeName
Nama penyemak imbas: navigator.appName
Nombor versi penyemak imbas: navigator.appVersion
Sokongan untuk Java: navigator.javaEnabled()
Jenis MIME (tatasusunan): navigator.mimeTypes
Platform sistem: navigator.platform
Pemalam (susunan): navigator.plugins
Ejen pengguna: navigator.userAgent