原文: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(); }
|
|