3

我目前正在使用 HTML+Javascript 在 Windows 8 上开发应用程序。我在我的应用程序中使用 iFrame,并为键盘事件添加了 keyeventlisteners。

但是,当我右键单击鼠标时,appbar 会出现,它会抢走我的应用程序的焦点,所以现在所有的键盘事件都没有做任何事情。但是,如果再次右键单击以关闭应用栏,一切都会再次正常工作。

有谁知道有焦点的应用栏是否是微软设计的?还是将焦点带回我的 iFrame 的一种方式?

谢谢!

4

1 回答 1

0

这是故意的;这是为了让用户可以使用他们想要显示应用栏的任何方法,然后使用键盘来控制它。验证行为的一个好方法是在 VS 中创建默认的“网格模板”应用程序,并取消注释 Appbar,添加一些额外的按钮,然后测试行为。

但是请注意,粘性应用栏和非粘性应用栏之间的期望有所不同。在非粘性的情况下,焦点需要移动到应用栏,因为没有其他方法可以在不导致应用栏关闭的情况下(使用键盘时)。但是,对于sticky,它只能通过使用手势(右键单击,或win-z,或轻扫触摸)来解除,默认情况下不将焦点放在其中是可以的。

您的解决方案可能是在文档级别而不是在 IFRAME 中附加您的偶数处理程序,由于两个上下文之间消息传递的性质,这将是复杂的。

于 2012-08-29T23:25:37.983 回答