簡體   English   中英

蘋果瀏覽器iphone ios 7在輸入文本焦點上凍結

[英]safari iphone ios 7 Freezes on input text focus

我們有一個復雜的應用程序表單,其中包含許多字段和jquery事件。 問題類似於此iOS 7 Safari:單擊/關注HTML輸入時,操作系統鎖定4秒鍾,但在我們的情況下,它完全死機,永遠無法恢復工作。

該問題僅發生在iPhone的Safari中,ANyone有同樣的問題和解決方案嗎? 謝謝

使用Binke的解決方案固定了觸摸事件的延遲,但是隨后在按下鍵時仍然存在延遲,因此捕獲按鍵和擊鍵事件對我來說可以解決此問題。 我必須使用keypress事件來區分大寫和小寫字母,但是對於刪除/退格鍵,keydown事件是必需的。 基本上,這只是捕獲按下的鍵並將其放在輸入框中(或刪除用於退格鍵/刪除鍵的最后一個字符)。 選擇器變量應包含將包含導致凍結的所有輸入的jquery選擇器。 這是我們使用的代碼:

    var scroll = 0;    
    var selectors = "#input1, #input2, #input3";
    $(selectors).bind("touchstart", function (e) {
        scroll = document.body.scrollTop;
    });
    //I stripped away some of Binke's code because we were only having an issue with INPUT controls
    $(selectors).bind("touchend", function (e) {
        if (scroll == document.body.scrollTop) { 
            if (e.target.nodeName.toString().toUpperCase() == 'INPUT') {
                e.preventDefault(); 
                e.target.focus();  
                e.target.setSelectionRange(e.target.value.length, e.target.value.length);
            } 
        }
    });
    $(selectors).bind('keydown', function (e) {
        //alert(e.which);
        if (e.which == 8 || e.which == 46) { // BACKSPACE OR DELETE
            $(this).val($(this).val().substring(0, ($(this).val().length - 1)));
            return false;
        }
        else { return true; }
    });
    $(selectors).bind("keypress", function (e) {
        if (e.which != 8 && e.which != 46) {
            $(this).val($(this).val() + String.fromCharCode(e.which));
        }
        return false;
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM