需要捕获F12键和Shift F12键组合IE8

时间:2009-09-17 18:37:10

标签: silverlight silverlight-3.0

在silverlight应用程序中,如果我在插件上将Windowless设置为true,那么 F12 键不会在KeyUp上捕获布局根目录。

我正在尝试广泛应用此应用程序。因此无论用户在何处输入,我都需要捕获 F12 SHIFT F12

目前我正在尝试在顶级布局根目录的Keyup事件中捕获它。

这适用于IE7,但不适用于IE8

适用于 F12 与IE8 windowless = false

这不适用于IE8的{kbd> SHIFT F12 windowless=false

2 个答案:

答案 0 :(得分:0)

这可能是Microsoft强加的设计限制,类似于您无法捕获 CTRL - ALT - DEL `。

F12 在IE8中打开“开发人员工具”窗口的快捷方式。所以IE8可能会消耗这些按键。

答案 1 :(得分:0)

窗口和无窗口之间的行为差​​异是对于窗口化(windowless=false)控件,Windows可以在任何父项(在本例中为IE)可以处理之前首先将密钥消息发送到该窗口。因此,Silverlight可以管理它并在IE拥有它之前取消它,而使用无窗口的IE将关键事件分派给控件,以便处理它。

我不确定如何在Silverlight中吞下按键,但在JavaScript中,您可以使用event.returnValuee.preventDefault()return false取消它,具体取决于您需要支持的浏览器。以下代码段取消了IE9中的大多数按键,包括F12。

document.addEventListener("DOMContentLoaded", function(){
    document.addEventListener("keydown", function(e){           
        window.event.returnValue=false; 
        e.preventDefault();
        return false;
    });
});