【问题标题】:Detect Windows 8 on-screen keyboard with Javascript使用 Javascript 检测 Windows 8 屏幕键盘
【发布时间】:2014-10-23 14:58:02
【问题描述】:

我有一个带有输入字段的全屏网页。当用户触摸输入字段时,会出现 Windows 8 屏幕键盘。这种行为是预期的和必要的,但由于键盘的原因,输入字段被覆盖了。

我希望能够使用 Javascript 检测 Windows 8 屏幕键盘何时出现,以便我可以处理在键盘上方移动输入字段。

输入字段绝对位于屏幕上,因此屏幕键盘似乎不会改变存储窗口大小的方式。

我们将不胜感激任何和所有有关此的信息。

编辑:我也想通过 Javascript 执行此操作,因为这样我可以在关闭键盘时将输入字段移回(这可能无法通过按下窗口来处理,因为它可以被关闭通过键盘本身)。

【问题讨论】:

  • 我们不能假设任何点击输入都会触发键盘吗?您可以将处理程序附加到输入,只要它的焦点将其向上移动,当它的模糊将其向下移动时......
  • @Banana,这绝对是一种可能性,但我希望有一个更便携、可重用的解决方案。但是,如果我找不到其他方法,我会使用它:)
  • 键盘出现是否触发resize事件? window.heightdocument.height 会改变吗?我没有对此进行测试,这只是一个奇怪的想法(只是一个疯狂的猜测)。
  • 我的 Google-fu 发现了这个:code.msdn.microsoft.com/windowsapps/… 和这个 msdn.microsoft.com/en-us/library/windows/apps/hh700405.aspx 不确定这是否适用于 Win 8 应用程序或网页,但也许它有帮助?
  • @RocketHazmat,我的 Google-fu 也发现了这一点,但它看起来像 Windows 应用商店应用程序,而不是标准网站。不过谢谢!

标签: javascript html


【解决方案1】:

这有帮助吗?

iPad Web App: Detect Virtual Keyboard Using JavaScript in Safari?

$(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,反正我也不完全理解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多