javascript - uc、qq、搜狗 以上三個手機瀏覽器判斷移動端的js代碼不執(zhí)行
問題描述
如題寫了一段代碼判斷移動端就跳轉(zhuǎn),但是在uc、qq、搜狗的手機端不執(zhí)行,chrome、小米、微信的手機端瀏覽器可以執(zhí)行
var browser = {versions: function () { var u = navigator.userAgent, app = navigator.appVersion; return {trident: u.indexOf(’Trident’) > -1, //IE內(nèi)核presto: u.indexOf(’Presto’) > -1, //opera內(nèi)核webKit: u.indexOf(’AppleWebKit’) > -1, //蘋果、谷歌內(nèi)核gecko: u.indexOf(’Gecko’) > -1 && u.indexOf(’KHTML’) == -1,//火狐內(nèi)核mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否為移動終端ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), //ios終端android: u.indexOf(’Android’) > -1 || u.indexOf(’Adr’) > -1, //android終端iPhone: u.indexOf(’iPhone’) > -1, //是否為iPhone或者QQHD瀏覽器iPad: u.indexOf(’iPad’) > -1, //是否iPadwebApp: u.indexOf(’Safari’) == -1, //是否web應該程序,沒有頭部與底部weixin: u.indexOf(’MicroMessenger’) > -1, //是否微信 (2015-01-22新增)qq: u.match(/sQQ/i) == ' qq' //是否QQ };}(), }; if (browser.versions.android || browser.versions.ios || browser.versions.mobile || browser.versions.iPhone||browser.versions.webApp||browser.versions.weixin||browser.versions.qq) {window.location = ’mobileWeb.html’ }
問題解答
回答1:if(’ontouchend’ in document) { // 移動端}回答2:
'SE'判斷搜狗,'UBrowser'判斷UC,要添加兩個,修改'QQBrowser'判斷QQ,然后試試看
回答3:最終發(fā)現(xiàn)了,原來是寫了一句es6的語法,uc、搜狗、qq瀏覽器不支持,導致報錯代碼不執(zhí)行。。。下載了一個vConsole調(diào)試工具在移動端才顯示了錯誤。
回答4:正則對不上撒。把ua打印出來,自己看下哪里沒匹配。移動端的ua不是有更簡單的mobile關(guān)鍵字嗎?搞的這么復雜?
相關(guān)文章:
1. mysql 可以從 TCP 連接但是不能從 socket 鏈接2. sql語句 - 如何在mysql中批量添加用戶?3. mysql 非主鍵做范圍查找實現(xiàn)原理的一點困惑4. java - jdbc如何返回自動定義的bean5. 怎么php怎么通過數(shù)組顯示sql查詢結(jié)果呢,查詢結(jié)果有多條,如圖。6. mysql - 數(shù)據(jù)庫建字段,默認值空和empty string有什么區(qū)別 1107. mysql - JAVA怎么實現(xiàn)一個DAO同時實現(xiàn)查詢兩個實體類的結(jié)果集8. mysql建表索引問題求助9. mysql - PHP定時通知、按時發(fā)布怎么做?10. 事務 - mysql共享鎖lock in share mode的實際使用場景
