2012-08-29 52 views
3

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

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

有谁知道如果重点的appbar是由微软设计的?还是将焦点带回我的iFrame?

谢谢!

回答

0

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

但是请注意,有一个 appbar和非粘性 appbar之间的预期差异。在不粘连的情况下,焦点需要移动到应用栏,因为没有其他方式可以在不引起应用栏解除的情况下使用键盘。但是,粘性只能通过使用手势(右键单击,或win-z或轻扫手势)消除,因此默认情况下不会将焦点置于其中。

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