.NET WebBrowser控件中的Javascript keyup/keydown

6 .net javascript c# browser keyboard

我有一个.NET WebBrowser控件,我用它来显示我编写的一些javascript密集的页面.页面使用YUI,并以可移植的方式构建.

我刚刚发现虽然我可以在javascript中捕获keypress,但我似乎无法在javascript中捕获keyup或keydown .这可以防止我挂钩ESC,CTRL + A,UP,RIGHT,TAB等.

我知道我可以捕获.NET中的密钥,并且其中一些存在"黑客".例如,CTRL + A的Document.ExecCommand("SelectAll",..,..).---顺便说一句,我仍然无法让SendKeys.Send("{TAB}")为标签---工作.我意识到我可以使用.NET来执行处理UP箭头的函数,但出于可移植性和最佳实践的原因,我真的不想这样做.

谁能解释为什么我无法捕获javascript中的keyup/keydown事件或建议解决方法?

谢谢!

小智 0

我写了一些代码来展示如何在 JavaScript 中捕获箭头键按下。我已经在 IE 和 FireFox 中测试过了,所以应该没问题......

<input id="Text1" type="text" onkeydown="keyPress(event)" />

<script type="text/javascript">
    function keyPress(e)
    {
        var textBox = document.getElementById('Text1');

        var keynum;

        if (window.event) // IE
            keynum = e.keyCode;
        if (e.which) // Other browser
            keynum = e.which;

        switch (keynum)
        {
            case 38:
                textBox.value = 'Up Arrow';
                break;
            case 37:
                textBox.value = 'Left Arrow';
                break;
            case 40:
                textBox.value = 'Down Arrow';
                break;
            case 39:
                textBox.value = 'Right Arrrow';
                break;
            default:
                textBox.value = 'Another key';
                break; 
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你 :)