首頁  >  文章  >  web前端  >  使用微信內建瀏覽器點選下拉框出現頁面亂跳轉現象(iphone),該怎麼辦_jquery

使用微信內建瀏覽器點選下拉框出現頁面亂跳轉現象(iphone),該怎麼辦_jquery

WBOY
WBOY原創
2016-05-16 15:21:542224瀏覽

相關閱讀:微信支付如何實現內建瀏覽器的H5頁支付

情境再現:

      正當開心地收拾東西準備下班的時候,測試部的姑娘跑過來提了一個bug: 「在iphone下,點擊下拉框出現頁面亂跳轉現象,安卓機並沒有這個問題。而跳轉的頁面剛好是底部選單的幾個頁面。再次測試之後,小編逐一排查了可能性原因(正式版和測試版程式碼不一致,頁面HTML程式碼錯亂,css程式碼錯誤),但都未能解決問題。一個簡單的select,怎麼就出現問題了呢?百思不得其解。 (至今也沒有找到問題根源)

      找不出問題根源,只能先看看有沒有解決方案。經過多次調試,捕捉select動作,找到了一個解決方案。原理很簡單:利用div來模擬select。

解:

      想法也是比較清楚的。頁面中有兩個html結構,一是select程式碼照常寫(一開始處於隱藏狀態display:none),二是被模擬的div(一開始處於顯示狀態),當點擊div時出現select下拉框,同時將讀取的option值給被模擬的div,其模擬核心程式碼可下載VisualSelect.js

html代碼

<div class=”visualSelect” >商行</div>
<select class=”round” style=”display:none;”>
 <option value=”1”>国股</option>
 <option value=”2”>商行</option>
 <option value=”3”>其他</option>
</select> 

css代碼

.round { border-radius: 4px;}
.visualSelect {
 width: 100%;
 padding: .45rem .5rem .25rem .75rem;
 margin-bottom: .875rem;
 border: 1px solid #ddd;
 border-radius: 4px;
 color: #bbb;
} 

js程式碼

註:由於問題只存在於部分iphone,android手機並沒有問題,因此最好判斷機型。

var agent = navigator.userAgent;
if ( agent.indexOf(“iPhone”) > -1) {
 $(“select”).VisualSelect(); //调用插件即可
}

PS:bootstrap滾動監聽在iPhone微信內建的瀏覽器上有時有效果有時沒有

bootstrap寫了一個affix的附加導航(導航條在左邊,數據在右邊,分成的兩列),在安卓手機的微信內置瀏覽器上滾動監聽是正常的,但是在iPhone微信的內置瀏覽器上有時可以監聽有時不能監聽,這是什麼原因?

解:

出現這個原因是用HTML5寫的網頁,iPhone沒有及時回應導致的,最好用jQuery mobile。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn