Javascript 在自动聚焦ios web浏览器上强制显示键盘

Javascript 在自动聚焦ios web浏览器上强制显示键盘,javascript,jquery,html,ios,Javascript,Jquery,Html,Ios,有很多话题都在讨论这个问题,但似乎都是老生常谈的,与此无关(还有更多的ios发布) 我开发了一个通过网络浏览器运行的应用程序,无论是safari还是firefox(在iPad上)。该网页对输入有自动对焦功能,我需要强制打开键盘 我曾尝试过使用大量jQuery黑客来进行聚焦、超时等操作,但没有任何成功。我读到cordova可能会这样做,但在我重新开发应用程序之前,是否有其他JS库可以轻松地“插入”到我现有的html页面 最近的一段代码是,当我按下页面上的按钮时,它会将焦点放在我的表单输入上,并显示

有很多话题都在讨论这个问题,但似乎都是老生常谈的,与此无关(还有更多的ios发布)

我开发了一个通过网络浏览器运行的应用程序,无论是safari还是firefox(在iPad上)。该网页对输入有自动对焦功能,我需要强制打开键盘

我曾尝试过使用大量jQuery黑客来进行聚焦、超时等操作,但没有任何成功。我读到cordova可能会这样做,但在我重新开发应用程序之前,是否有其他JS库可以轻松地“插入”到我现有的html页面

最近的一段代码是,当我按下页面上的按钮时,它会将焦点放在我的表单输入上,并显示键盘:

<script type="text/javascript">
    window.addEventListener('DOMContentLoaded', function() {
      var button = document.querySelector('#button');
      var input = document.querySelector('#input');
      var focus = function(e) {
        e.stopPropagation();
        e.preventDefault();
        var clone = input.cloneNode(true);
        var parent = input.parentElement;
        parent.appendChild(clone);
        parent.replaceChild(clone, input);
        input = clone;
        window.setTimeout(function() {
          input.value = input.value || "";
          input.focus();
        }, 0);
      }
      button.addEventListener('mousedown', focus);
      button.addEventListener('touchstart', focus);
    }, false);
  </script>

addEventListener('DOMContentLoaded',function(){
var button=document.querySelector(“#button”);
var input=document.querySelector(“#input”);
变量焦点=函数(e){
e、 停止传播();
e、 预防默认值();
var clone=input.cloneNode(true);
var parent=input.parentElement;
父。子(克隆);
parent.replaceChild(克隆,输入);
输入=克隆;
setTimeout(函数(){
input.value=input.value | |“”;
input.focus();
}, 0);
}
按钮。addEventListener('mousedown',focus);
按钮。addEventListener('touchstart',focus);
},假);
是否有任何方法可以模拟单击按钮,我尝试了以下方法,但在任何浏览器上都不起作用,更不用说IOS了:

<script type="text/javascript">
$(document).ready(function() {
    $("#button").click();
});

</script>

$(文档).ready(函数(){
$(“#按钮”)。单击();
});
简而言之,我能模拟一下点击这个按钮吗?如果我能在我的桌面上使用它,我会祈祷它能在IOS上使用

或者如果其他人有任何建议/想法/技巧,我将不胜感激

我上面代码的工作示例取自

编辑:

因此,我可以在一段时间延迟后(使用MouseeEvent)强制按下按钮,以模拟现实生活中的触地事件,但它只将焦点放在ios上的输入框上,不会出现键盘提示叹息(虽然它在桌面浏览器上工作),看起来我必须用cordova重新编写

<script type="text/javascript">
    $(document).ready(function() {

        function focusinput(){
        var evt = new MouseEvent("touchstart", {
            view: window,
            bubbles: true,
            cancelable: true,
            clientX: 20,
            /* whatever properties you want to give it */
        }),
            ele = document.getElementById("button");
        ele.dispatchEvent(evt);
        } 


        function focusinputa(){
        var evt = new MouseEvent("mousedown", {
            view: window,
            bubbles: true,
            cancelable: true,
            clientX: 20,
            /* whatever properties you want to give it */
        }),
            ele = document.getElementById("button");
        ele.dispatchEvent(evt);
        }

        ;

        setTimeout(focusinput, 1000);
        setTimeout(focusinputa, 1500);


    });

</script>

$(文档).ready(函数(){
函数焦点输入(){
var evt=new MouseEvent(“touchstart”{
视图:窗口,
泡泡:是的,
可取消:对,
客户端:20,
/*不管你想给它什么属性*/
}),
ele=document.getElementById(“按钮”);
电气调度事件(evt);
} 
函数focusinputa(){
var evt=新的MouseEvent(“mousedown”{
视图:窗口,
泡泡:是的,
可取消:对,
客户端:20,
/*不管你想给它什么属性*/
}),
ele=document.getElementById(“按钮”);
电气调度事件(evt);
}
;
设置超时(聚焦输入,1000);
setTimeout(focusinputa,1500);
});
编辑2:


在本机html/js网页中,似乎根本没有办法做到这一点(在编写本ios 9.1时),如果有人有任何其他解决方案或想法需要测试,我很乐意进行测试,但到目前为止,我不得不求助于手动点击按钮来集中输入并打开键盘提示。

我也有类似的问题,经过大量测试,我得到了一个简单的解决方案,我希望它能帮助任何人;)

首先,Safari显然是焦点,但没有打开键盘。因此,我尝试将我的