Нужно захватить клавишу F12 и комбинацию клавиш Shift F12 IE8 - PullRequest
1 голос
/ 17 сентября 2009

В приложении silverlight, если я установил Windowless в true на плагине, тогда ключ F12 не захватывается в KeyUp для корневого макета.

Я пытаюсь сделать это приложение широко. Поэтому мне нужно захватить F12 и SHIFT F12 независимо от того, где пользователь вводит его.

В настоящее время я пытаюсь перехватить его в событии Keyup корня макета верхнего уровня.

Это работает для IE7, но не для IE8

Это работает для F12 с IE8 windowless = false

Это не работает для SHIFT F12 для IE8 windowless=false

Ответы [ 2 ]

0 голосов
/ 03 декабря 2011

Различие в поведении между окном и безокном состоит в том, что для оконного (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;
    });
});
0 голосов
/ 17 сентября 2009

Это может быть ограничение дизайна, наложенное Microsoft, аналогичное тому, как вы не можете записать CTRL - ALT - DEL `.

F12 ярлык для открытия окна инструментов разработчика в IE8. Таким образом, IE8, вероятно, использует эти нажатия клавиш.

...