用Javascript检测Windows 8屏幕键盘

3
我有一个全屏的网页,其中包含一个输入字段。当用户触摸输入字段时,Windows 8 屏幕键盘会出现。这种行为是预期和必要的,但由于键盘的存在,输入字段被覆盖了。
我想能够使用Javascript检测Windows 8屏幕键盘是否存在,以便我可以处理将输入字段移到键盘上面的情况。
输入字段在屏幕上绝对定位,因此屏幕键盘似乎不会改变存储窗口大小的方式。
非常感谢提供任何关于此的信息。
编辑:我也想通过Javascript实现这一点,因为这样可以在键盘关闭时将输入字段恢复原位(可能不是通过窗口按键处理的,因为它可以通过键盘本身来关闭)。

1
我们能不能假设任何对输入框的点击都会触发键盘?你可以在输入框上附加一个处理程序,每当它获得焦点时将其移动上去,失去焦点时将其移回下方... - Banana
@Banana,这绝对是一种可能性,但我希望有一种更便携、可重复使用的解决方案。不过,如果找不到其他方法,我会使用这个 :) - Nathan White
键盘出现会触发resize事件吗?window.heightdocument.height会改变吗?我还没有测试过,这只是一个好奇的想法(也只是一个猜测)。 - gen_Eric
@RocketHazmat,我只能假设不会,因为输入字段的绝对定位不会改变。我会测试一下并回来告诉你。 - Nathan White
2
我的谷歌技巧找到了这个链接:https://code.msdn.microsoft.com/windowsapps/keyboard-events-sample-866ba41c 和 http://msdn.microsoft.com/en-us/library/windows/apps/hh700405.aspx 不确定这是用于Win 8应用程序还是网页,但也许有帮助? - gen_Eric
2
@RocketHazmat,我的谷歌搜索也找到了这个,但看起来它是一个Windows Store应用程序,而不是一个标准网站。还是谢谢! - Nathan White
1个回答

0
这个能帮上忙吗? iPad Web App: 在Safari中使用JavaScript检测虚拟键盘?
$(document).ready(function(){
$('input').bind('focus',function() {
    $(window).scrollTop(10);
      var keyboard_shown = $(window).scrollTop() > 0;
        $(window).scrollTop(0);

     $('#test').append(keyboard_shown?'keyboard ':'nokeyboard ');
   });
});

我知道这是为iPad设计的,但我猜可能有一些解决方法适用于普通浏览器吧? 这不是我的想法,是来自@LKM,而且我也没有完全理解。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接