在silverlight应用程序中,如果我在插件上将Windowless设置为true,那么 F12 键不会在KeyUp上捕获布局根目录。
我正在尝试广泛应用此应用程序。因此无论用户在何处输入,我都需要捕获 F12 和 SHIFT F12 。
目前我正在尝试在顶级布局根目录的Keyup事件中捕获它。
这适用于IE7,但不适用于IE8
适用于 F12 与IE8 windowless = false
这不适用于IE8的{kbd> SHIFT F12 windowless=false
答案 0 :(得分:0)
这可能是Microsoft强加的设计限制,类似于您无法捕获 CTRL - ALT - DEL `。
F12 在IE8中打开“开发人员工具”窗口的快捷方式。所以IE8可能会消耗这些按键。
答案 1 :(得分:0)
窗口和无窗口之间的行为差异是对于窗口化(windowless=false
)控件,Windows可以在任何父项(在本例中为IE)可以处理之前首先将密钥消息发送到该窗口。因此,Silverlight可以管理它并在IE拥有它之前取消它,而使用无窗口的IE将关键事件分派给控件,以便处理它。
我不确定如何在Silverlight中吞下按键,但在JavaScript中,您可以使用event.returnValue
,e.preventDefault()
或return false
取消它,具体取决于您需要支持的浏览器。以下代码段取消了IE9中的大多数按键,包括F12。
document.addEventListener("DOMContentLoaded", function(){
document.addEventListener("keydown", function(e){
window.event.returnValue=false;
e.preventDefault();
return false;
});
});