当前位置:  开发笔记 > 编程语言 > 正文

如何在javascript中劫持关键组合?

如何解决《如何在javascript中劫持关键组合?》经验,为你挑选了1个好方法。

例如,在Gmail中,当按下Ctrl+时B,而不是将其传递给浏览器(通常会显示某种书签管理器),它会出于格式化目的而劫持它,即打开邮件的粗体格式.中间的.Ctrl+ i,Ctrl+ 相同u.

这是怎么做到的?



1> hbw..:

您可以将一个onkeydownonkeyup事件处理程序附加到全局document对象.例如,如果我想在每次按下Ctrl-M时将标题栏更改为"asdf",我将通过注册事件处理程序window.onload,如下所示:

window.onload = function()
{
    document.onkeydown = function(event)
    {
        var keyCode;

        if (window.event) // IE/Safari/Chrome/Firefox(?)
        {
            keyCode = event.keyCode;
        }
        else if (event.which) // Netscape/Firefox/Opera
        {
            keyCode = event.which;
        }

        var keyChar = String.fromCharCode(keyCode).toLowerCase();

        if (keyChar == "m" && event.ctrlKey)
        {
            document.title = "asdf";
            return false;  // To prevent normal minimizing command
        }
    };
};

W3Schools提供了有关使用这些活动的更多信息:onkeydownonkeyup.

此外,我想我应该注意到,各种浏览器在事件属性方面存在一些差异(例如,在Firefox中,你应该通过访问密钥代码event.which,而在IE浏览器中event.keyCode,虽然Firefox可能支持event.keycode-confusing ,不是吗?).因此,我建议通过JavaScript框架(例如Prototype或jQuery)来完成这些工作,因为它们会为您处理所有棘手的兼容性内容.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有