ios上input的focus()、autofocus無(wú)效處理方法(20180918)

出現(xiàn)focus無(wú)效原因:

ios的UIWebView 默認(rèn)的KeyboardDisplayRequiresUserAction為false,設(shè)置為true就行,WKWebView 不支持這個(gè)屬性,如果要從原生入手解決,請(qǐng)參考https://stackoverflow.com/questions/32407185/wkwebview-cant-open-keyboard-for-input-field

解決思路:

從無(wú)效原因可以看出,是鍵盤需要用戶觸發(fā)才能彈出,這導(dǎo)致了autofocus或者element.focus()無(wú)效,所以,在鍵盤彈出的情況下再去focus,或者跳轉(zhuǎn)到帶有autofocus的頁(yè)面也就可以正常focus了

解決方法:

通常的場(chǎng)景是,我們點(diǎn)擊頁(yè)面某個(gè)元素 => 邏輯交互 => 希望focus元素、或者跳轉(zhuǎn)到有aotufocus的頁(yè)面。再這里有個(gè)大前提,就是要有點(diǎn)擊頁(yè)面行為。

  • 第一步:在點(diǎn)擊頁(yè)面時(shí)候,給一個(gè)占位的input進(jìn)行focus,調(diào)起鍵盤;

  • 第二步:邏輯交互、異步操作、settimeout延時(shí)處理等,在處理完成再focus到目標(biāo)input,或者跳轉(zhuǎn)到autofocus的頁(yè)面,就可以正常focus了。

劃重點(diǎn)

只要是點(diǎn)擊事件的回調(diào)就具備focus到input的能力,所以無(wú)論是點(diǎn)擊生成input再focus到這個(gè)input、還是跳轉(zhuǎn)到autofocus的頁(yè)面,先利用點(diǎn)擊focus到一個(gè)占位input調(diào)起鍵盤,在鍵盤存在的情況下調(diào)用element.focus()或者跳轉(zhuǎn)到有autofocus的頁(yè)面就都可以正常focus了。

占位input:
.clip{
  position: absolute;
  clip: rect(0 0 0 0);
}

<input ref="tempFocus" class="clip">

<div @click="gotoCommentClick">快來(lái)留言吧!</div>

gotoCommentClick() {
  this.afterLogin().then(_ => {
    this.$refs.tempFocus.focus();
    this.$router.push(this.$route.path + '/comment');
  })
},
comment.vue
mounted() {
    this.$refs.editor.focus();
  }

UC瀏覽器上注意事項(xiàng):

uc瀏覽器,如果吊起鍵盤focus的input和延時(shí)再去focus的input不是同一個(gè)input,則第二個(gè)input無(wú)法正常focus,會(huì)出現(xiàn)鍵盤彈起又收起。處理方式是第二focus的input由第一個(gè)input復(fù)制插入到頁(yè)面就可以正常了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過(guò)CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明AI閱讀 16,208評(píng)論 3 119
  • 最近又調(diào)整了學(xué)習(xí)英語(yǔ)的計(jì)劃,把快堅(jiān)持了一年的口語(yǔ)打卡也停了,學(xué)習(xí)內(nèi)容都換上了賴世雄老師的《美語(yǔ)從頭學(xué)》系列。 美語(yǔ)...
    穆建園閱讀 544評(píng)論 3 1
  • 我家閨女有鼻炎,兒研所也看了,醫(yī)生也沒(méi)有辦法,只是說(shuō)平時(shí)隔個(gè)十天半月的涂涂紅霉素軟膏,多清洗,沒(méi)什么好...
    春暖花開冬天已過(guò)閱讀 196評(píng)論 0 0
  • 從筆圖可以把人主要分為四種類型: 膽汁質(zhì)(o型血):性格表現(xiàn):強(qiáng)勢(shì),精神力強(qiáng),容易自我。適合抓宏觀的崗位比較厲害,...
    垚堯進(jìn)化史閱讀 294評(píng)論 0 0

友情鏈接更多精彩內(nèi)容