我目前正在使用phonegap开发一个简单的ios / android应用程序。为了改善用户体验,该应用程序可以使用许多快捷方式。 (需要物理键盘)。为了处理快捷方式事件,我正在使用onkeypress事件和JQuery,它在Android上非常有效。不幸的是,IOS没有发生任何事件。如果我将焦点设置为输入元素,则onkeypress侦听器按预期工作。
我的问题: 如何在不将焦点设置为输入元素的情况下检测IOS上的关键事件? 是否有任何插件或解决方法来解决此问题?
问候
更新
我尝试了一个正常的输入字段,一切都按预期工作。如果我将输入更改为隐藏的输入,则代码将不再起作用
答案 0 :(得分:0)
我找到了解决问题的方法:
我添加了一个包含输入字段的div,这个div的z-index为-10,所以它不会出现
隐藏字段始终拥有焦点,直到选择其他输入字段。新选择的输入字段将获得模糊功能,以将焦点恢复到隐藏字段。
隐藏字段
<div style="position:absolute;width:1px;heigth:1px;overflow:hidden">
<input type="text" id="hiddencode" style="position:absolute;left:10px;top:10px;z-index:-1"/>
</div>
js部分
var blurFunction = function(e) {
setTimeout(function(){
console.log(document.activeElement); // This is the element that has focus
if($(document.activeElement).is("input") || (document.activeElement).is("select")) {
$(document.activeElement).blur(blurFunction);
}
else {
$('#hiddencode').focus();
}
$('#hiddencode').val("");
});
};
$('#hiddencode').focus();