【问题标题】:Why this won't show keyboard on iPhone even when obj.focus() is used?为什么即使使用 obj.focus() 也不会在 iPhone 上显示键盘?
【发布时间】:2013-08-04 15:10:10
【问题描述】:

Javascript 1 是单击链接时将调用的操作。
它工作得很好,它会自动设置值,并聚焦元素。
当然,iPhone 的虚拟键盘出现是因为输入文本字段被聚焦。

Javascript 1

jQuery(document).ready(function () {
    $(document).on('click', 'a#user', function()  {
        $(".box#input").val($(this).attr('value')); 
        var input = $(".box#input");
        $(document).scrollTop(input .offset().top - 45);
        input.focus();          
    });
 });

此 Javascript 2 是当 URL 包含 mode=1 并加载时将调用的操作。 该脚本的功能与上述几乎相同,并且工作正常。
但是一件事!!即使输入文本字段获得焦点,iPhone 的键盘也不会出现。
真的很奇怪……为什么?我该如何解决这个问题?

Javascript 2

window.onload = function(){
    if(document.URL.indexOf("mode=1") >= 0){ 
        var input = $(".box#input");
        $(document).scrollTop(input .offset().top - 45);
        var v = input.val();
        input.val('');
        input.focus().val(v);
        input.focus();
    }
}

【问题讨论】:

    标签: javascript iphone mobile-safari


    【解决方案1】:

    通常,除非有某种用户交互(例如,单击输入字段),否则键盘不会显示。但是,如果您使用超时,您可以像上面那样以编程方式执行此操作。

    setTimout(function(){
        input.focus();
    }, 1);
    

    【讨论】:

    • 你能用我的代码和你的代码给我看整个代码吗?
    • 这在我的 iPod touch 上不起作用。如果它在 iPhone 上运行,我会感到惊讶。
    【解决方案2】:

    如果您将网页添加到 iOS 主屏幕并从那里访问它,则 input.focus() 将激活键盘

    【讨论】:

      猜你喜欢
      • 2011-03-20
      • 1970-01-01
      • 2011-11-05
      • 1970-01-01
      • 2014-03-14
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      • 2016-01-24
      相关资源
      最近更新 更多