第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

移動(dòng)Safari自動(dòng)對(duì)焦文本字段

移動(dòng)Safari自動(dòng)對(duì)焦文本字段

暮色呼如 2019-08-08 15:29:04
移動(dòng)Safari自動(dòng)對(duì)焦文本字段在Mobile Safari中,在設(shè)置延遲時(shí)間后,我無(wú)法將注意力集中在文本字段上。我附上一些展示問題的示例代碼。如果單擊該按鈕,則觸發(fā).focus(),一切都按預(yù)期工作。如果你把焦點(diǎn)放在回調(diào)上,比如setTimeout函數(shù),那么它只能在移動(dòng)safari中失敗。在所有其他瀏覽器中,有一個(gè)延遲,然后焦點(diǎn)發(fā)生。令人困惑的是,即使在移動(dòng)游獵中,也會(huì)觸發(fā)“focusin”事件。這個(gè)(和SO中的?類似?評(píng)論)讓我覺得它是一個(gè)移動(dòng)的safari bug。任何指導(dǎo)都將被接受。我已經(jīng)在模擬器和iPhone 3GS / 4 iOS4上進(jìn)行了測(cè)試。示例HTML:<!DOCTYPE html>    <html lang='en'>      <head>        <title>Autofocus tests</title>        <meta content='width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0' name='viewport'>        <meta content='yes' name='apple-mobile-web-app-capable'>      </head>      <body>       <h1>          Show keyboard without user focus and select text:      </h1>        <p>          <button id='focus-test-button'>            Should focus on input when you click me after .5 second        </button>          <input id='focus-test-input' type='number' value='20'>        </p>        <script type="text/javascript">          //<![CDATA[         var button = document.getElementById('focus-test-button');         var input  = document.getElementById('focus-test-input');         input.addEventListener('focusin', function(event) {           console.log('focus');           console.log(event);         });         button.addEventListener('click', function() {           // *** If triggered immediately - functionality occurs as expected           // input.focus();           // *** If called by callback - triggers the focusin event, but does not bring up keyboard or cursor           var t = setTimeout("input.focus();",500);         });         //]]>       </script>     </body>   </html>
查看完整描述

3 回答

?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊

我認(rèn)為這是移動(dòng)Safari的一個(gè)功能,而不是一個(gè)bug。在我們關(guān)于FastClick的工作中,我和我的同事發(fā)現(xiàn),如果調(diào)用堆棧中的第一個(gè)函數(shù)是由非程序化事件觸發(fā)的,iOS將只允許在函數(shù)內(nèi)的其他元素上觸發(fā)焦點(diǎn)。在您的情況下,調(diào)用setTimeout啟動(dòng)一個(gè)新的調(diào)用堆棧,安全機(jī)制啟動(dòng),以防止您將焦點(diǎn)設(shè)置在輸入上。

請(qǐng)記住,在iOS設(shè)置上,關(guān)注輸入元素會(huì)調(diào)出鍵盤 - 因此所有那些專注于頁(yè)面加載的輸入元素的網(wǎng)頁(yè),就像Google一樣,在iOS上使用會(huì)非常煩人。我猜Apple決定他們必須采取措施來(lái)防止這種情況發(fā)生。所以我不同意@DA:這是一個(gè)功能,而不是一個(gè)bug。

對(duì)此沒有已知的解決方法,所以你必須放棄使用延遲的想法。

從iOS 5開始,允許由合成點(diǎn)擊事件觸發(fā)的處理程序觸發(fā)對(duì)輸入元素的關(guān)注。嘗試更新的FastClick輸入焦點(diǎn)示例。


查看完整回答
反對(duì) 回復(fù) 2019-08-08
?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊

只有當(dāng)原始事件來(lái)自用戶交互而不是來(lái)自setTimeout時(shí),才能通過(guò)調(diào)度click事件來(lái)提升鍵盤。我相信結(jié)果是你可以從touchend事件中提升鍵盤,但仍然不會(huì)超時(shí)。


查看完整回答
反對(duì) 回復(fù) 2019-08-08
?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

至少在iOS 5.1上的Safari上,此問題已修復(fù)。您的FastClick作品,即合成點(diǎn)擊事件不會(huì)失敗焦點(diǎn)。然而,這并不能幫助那些希望他們的單個(gè)focus()代碼能夠在所有iOS版本上工作的人,感嘆。


查看完整回答
反對(duì) 回復(fù) 2019-08-08
  • 3 回答
  • 0 關(guān)注
  • 441 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)