-WEBKIT-USER-SELECT:NONE導致輸入框無法輸入


原文:http://hicc.me/post/webkit-user-select-none-disabling-text-field.html

最近在webview中寫頁面的時候發現個別Android機型(Google  Nexus,Android 4.2.2)輸入框無法輸入(但是鍵盤可以彈起,所以不是網上所說webView.requestFocus(View.FOCUS_DOWN);的問題),經過試錯發現是-webkit-user-select:none;所導致的原因。

后來網上再搜,果然有同樣的問題,Phonegap styles -webkit-user-select: none; disabling text field

當然如果你確實需要這個-webkit-user-select這個屬性,也可以這樣寫css代碼(來源於上述的stackoverflow上的回答。):

*:not(input,textarea) {
     -webkit-touch-callout:  none ;
     -webkit-user-select:  none ;
}
 
 

在此還想做的引申是,如果是web應用使用了iscroll這個插件,在某些機型上在iscroll4的滾動容器范圍內,點擊input框、select等表單元素時沒有響應,光標不定位,鍵盤不彈出,原因在於iscroll一直監聽用戶的touch操作,以便靈敏的做出對應效果,所以它把其余的默認事件屏蔽了,解決的方法是,在iscroll4源碼里面找到這一行

 

onBeforeScrollStart:  function  (e) { e.preventDefault(); }
//改為
onBeforeScrollStart:  function  (e) {  var  nodeType = e.explicitOriginalTarget ? e.explicitOriginalTarget.nodeName.toLowerCase():(e.target ? e.target.nodeName.toLowerCase():”); if (nodeType !=’select’&& nodeType !=’option’&& nodeType !=’input’&& nodeType!=’textarea’) e.preventDefault(); }

 

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM