我目前正在使用 HTML+Javascript 在 Windows 8 上开发应用程序。 我在我的应用程序中使用 iFrame,并为键盘事件添加了 keyeventlisteners。
但是,当我右键单击鼠标时,应用栏会出现,它会偷走我的应用程序的焦点,所以现在所有的键盘事件都没有做任何事情。但是,如果再次右键单击以关闭应用栏,一切都会再次正常工作。
有谁知 Prop 有焦点的应用栏是否是微软设计的?或者它是一种将焦点带回到我的 iFrame 的方法吗?
谢谢!
最佳答案
这是故意的;这是为了让用户可以使用任何他们想要显示应用栏的方法,然后使用键盘来控制它。验证行为的一个好方法是在 VS 中创建默认的“网格模板”应用程序,取消注释 Appbar,添加一些额外的按钮,然后测试行为。
但是请注意,粘性 应用栏和非粘性 应用栏之间的预期存在差异。在非粘性的情况下,焦点需要移动到应用栏,因为没有其他方法可以在不导致应用栏消失的情况下到达它(使用键盘时)。但是,对于粘滞,它只能通过使用手势(右键单击、win-z 或轻扫触摸)来消除,默认情况下焦点不放在其中是可以的。
您的解决方案可能是在文档级别附加偶数处理程序,而不是在 IFRAME 中,由于两种上下文之间消息传递的性质,这将很复杂。
关于javascript - Windows 8 应用栏窃取焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12187540/