如何在不在 JavaScript 页面上放置输入元素的情况下捕获按键,例如 Ctrl+Z?似乎在IE中,keypress和keyup事件只能绑定(bind)到输入元素(输入框,文本区域等)
最佳答案
对于可能在浏览器中触发某些操作(例如,在可编辑文档或元素中)的箭头键和快捷键(如 Ctrl-z、Ctrl-x、Ctrl-c)等不可打印的键,您可能不会在所有浏览器中获取按键事件。因此,如果您有兴趣抑制浏览器的默认操作,则必须改用 keydown
。如果没有,keyup
也可以。
将 keydown
事件附加到 document
适用于所有主流浏览器:
document.onkeydown = function(evt) {
evt = evt || window.event;
if (evt.ctrlKey && evt.keyCode == 90) {
alert("Ctrl-Z");
}
};
为了完整的引用,我强烈推荐Jan Wolter's article on JavaScript key handling .
关于javascript - 捕获按键而不在页面上放置输入元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2878983/