没有焦点的Phonegap iOS键盘事件
Posted
技术标签:
【中文标题】没有焦点的Phonegap iOS键盘事件【英文标题】:Phonegap iOS Keyboard event without focus 【发布时间】:2013-09-09 09:34:26 【问题描述】:我目前正在开发一个带有 phonegap 的简单 ios/android 应用程序。为了改善用户体验,该应用程序使用了许多快捷方式。 (需要物理键盘)。为了处理快捷方式事件,我将 onkeypress 事件与 JQuery 一起使用,这在 Android 上运行良好。不幸的是,没有在 IOS 上触发任何事件。如果我将焦点设置为输入元素,onkeypress 侦听器将按预期工作。
我的问题: 如何在不将焦点设置到输入元素的情况下检测 iOS 上的关键事件? 是否有任何插件或解决方法可以解决此问题?
更新
我尝试了一个正常的输入字段,一切都按预期工作。如果我将输入更改为隐藏的,则代码将不再起作用。
【问题讨论】:
你能澄清一下“需要物理键盘”,你想触发哪个键? 即 $ 或 !或任何其他类型的字母,如 g、a、b、c、d .... 【参考方案1】:我找到了解决问题的方法:
我添加了一个包含输入字段的 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();
【讨论】:
以上是关于没有焦点的Phonegap iOS键盘事件的主要内容,如果未能解决你的问题,请参考以下文章
在 phonegap 中打开软键盘时,未在 ios 7 上触发 showkeyboard/hidekeyboard 事件
js 键盘上Tab键,进行切换焦点时,这个事件执行的是哪个方法