JS跳轉(zhuǎn)手機(jī)站url的若干注意事項(xiàng)
引子:
去年年底公司開發(fā)手機(jī)站平臺(tái),經(jīng)歷了前期的用戶群、市場調(diào)查,產(chǎn)品需求分析,產(chǎn)品原型設(shè)計(jì),ui前端到程序開發(fā)上線測試等等工作,終于上線。。。此處略去本人作為前端開發(fā)的心情。
應(yīng)該說,我們的手機(jī)站平臺(tái)還是個(gè)頑皮小孩子,還有許多需要去學(xué)習(xí),去磨練。
我們手機(jī)站平臺(tái)的設(shè)計(jì)初衷是對(duì)接我們已有的PC站平臺(tái),簡單說就是原來我們所有的用戶使用的是我們的PC站服務(wù),現(xiàn)在可以得到一個(gè)網(wǎng)站數(shù)據(jù)與PC站 一樣的手機(jī)站點(diǎn)。重點(diǎn)是老用戶還不收錢,免費(fèi)用。(PC端網(wǎng)站的客戶 想想是不是有點(diǎn)兒小激動(dòng)呢)上線一段時(shí)間,感覺很多客戶還是蠻感興趣的,都在自己的手機(jī)上安裝了這個(gè)那個(gè)的二維碼掃面軟件,對(duì)著手機(jī)網(wǎng)站的二維碼掃啊掃的。
話入正題:
廢話不多說,很多客戶慕名而來,原來不是我們做PC的客戶買了我們的手機(jī)站服務(wù),這就產(chǎn)生了從其PC站如何能夠跳轉(zhuǎn)到手機(jī)站的問題。
我想,通過javascript獲取客戶端的 navigator.userAgent 之后使用url跳轉(zhuǎn) 是一個(gè)不錯(cuò)的方法。
走你-代碼:
var isMobile = { Android: function() { return navigator.userAgent.match(/Android/i) ? true : false; }, BlackBerry: function() { return navigator.userAgent.match(/BlackBerry/i) ? true : false; }, iOS: function() { return navigator.userAgent.match(/iPhone|iPod/i) ? true : false; }, Windows: function() { return navigator.userAgent.match(/IEMobile/i) ? true : false; }, Linux: function() { return navigator.userAgent.match(/Linux/i) ? true : false; }, any: function() { return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows() || isMobile.Linux()); } }; setTimeout(function() { if (isMobile.any()) { var body = document.getElementsByTagName('body'); body[0].style.display='none'; location.href = "http://m.某某.com/"; } }, 10);
簡單分析:
一、在那些設(shè)備上需要跳轉(zhuǎn)URL?
在XP,win7和mac下,一般不做手機(jī)站跳轉(zhuǎn)的。
市面上的 Android 、BlackBerry 、iOS 、Windows mobile(phone) 、Linux等系統(tǒng),為大家所常用的手機(jī)端操作系統(tǒng)?;鸷膚ebOS,“遠(yuǎn)古時(shí)代”的諾基亞塞班等等,在國內(nèi)外好像好沒有市場了,不要去考慮。
二、在頁面跳轉(zhuǎn)時(shí),存在哪些問題?
1.原PC網(wǎng)站需要加載的資源可能很多,跳轉(zhuǎn)URL之前PC站的頁面可能已經(jīng)呈現(xiàn),跳轉(zhuǎn)的效果太生硬
解答:js獲取終端的特性后,立即將body設(shè)置為隱藏
2.使用 window.onload 還是 setTimeout?
解答:setTimeout是由我選擇何時(shí)執(zhí)行,而可惡的 window.onload需要我等所有的資源下載后去執(zhí)行我的方法,故我推薦使用 setTimeout();
小結(jié):
關(guān)于終端設(shè)備的判斷,上面的代碼很膚淺的做了很尷尬的 url 跳轉(zhuǎn),這是不得已的方法。若是服務(wù)器端根據(jù)客戶端的請求頭信息來判斷設(shè)備特性,依此返回不同的資源是更好的選擇。
隨著移動(dòng)端設(shè)備的發(fā)展,很多瀏覽器能夠設(shè)置或者自定義修改 客戶端的請求頭信息,也是這段js可能面臨的問題,有待更新吶!
- JS如何實(shí)現(xiàn)網(wǎng)站中PC端和手機(jī)端自動(dòng)識(shí)別并跳轉(zhuǎn)對(duì)應(yīng)的代碼
- JS前端開發(fā)判斷是否是手機(jī)端并跳轉(zhuǎn)操作(小結(jié))
- js根據(jù)手機(jī)客戶端瀏覽器類型,判斷跳轉(zhuǎn)官網(wǎng)/手機(jī)網(wǎng)站多個(gè)實(shí)例代碼
- 基于JavaScript代碼實(shí)現(xiàn)pc與手機(jī)之間的跳轉(zhuǎn)
- js判斷手機(jī)訪問或者PC的幾個(gè)例子(常用于手機(jī)跳轉(zhuǎn))
- 兩款JS腳本判斷手機(jī)瀏覽器類型跳轉(zhuǎn)WAP手機(jī)網(wǎng)站
- JS腳本根據(jù)手機(jī)瀏覽器類型跳轉(zhuǎn)WAP手機(jī)網(wǎng)站(兩種方式)
- JSP中實(shí)現(xiàn)判斷客戶端手機(jī)類型并跳轉(zhuǎn)到app下載頁面
- 百度判斷手機(jī)終端并自動(dòng)跳轉(zhuǎn)js代碼及使用實(shí)例
- 手機(jī)平板等移動(dòng)端適配跳轉(zhuǎn)URL的js代碼
- JS自動(dòng)跳轉(zhuǎn)手機(jī)移動(dòng)網(wǎng)頁的實(shí)現(xiàn)方法
相關(guān)文章
JavaScript獲取字符串實(shí)際長度(包含中英文)
這篇文章介紹了JavaScript獲取字符串實(shí)際長度(包含中英文)的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06javascript中獲取class的簡單實(shí)現(xiàn)
下面小編就為大家?guī)硪黄猨avascript中獲取class的簡單實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07js實(shí)現(xiàn)點(diǎn)擊圖片改變頁面背景圖的方法
這篇文章主要介紹了js實(shí)現(xiàn)點(diǎn)擊圖片改變頁面背景圖的方法,實(shí)例分析了javascript操作css與圖片的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02JavaScript中數(shù)據(jù)過濾的幾種常見方法
JavaScript是一種廣泛使用的編程語言,它提供了多種方法來對(duì)數(shù)據(jù)進(jìn)行過濾,在本文中,我們將介紹JavaScript中常見的幾種數(shù)據(jù)過濾方法,并提供相應(yīng)的示例,感興趣的朋友跟隨小編一起看看吧2023-10-10