【发布时间】:2012-08-09 11:59:24
【问题描述】:
如何通过javascript模拟网页上的ESC按键?
非常感谢您的帮助!
【问题讨论】:
-
对Working with initKeyboardEvent 的回答可能会有所帮助。
标签: javascript keyboard
如何通过javascript模拟网页上的ESC按键?
非常感谢您的帮助!
【问题讨论】:
标签: javascript keyboard
由于该问题没有答案,因此here 提供了一个可能的解决方案。
function invokeEscKey() {
var ev = document.createEvent('KeyboardEvent');
ev.initKeyEvent(
'keydown', true, true, window, false, false, false, false, 27, 0);
document.body.dispatchEvent(ev);
}
【讨论】:
initKeyEvent() 已弃用。见developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/…
使用 Javascript 模拟 Esc 键(在 Firefox 和 Chromium 中测试):
window.dispatchEvent(
new KeyboardEvent("keydown", {
altKey: false,
code: "Escape",
ctrlKey: false,
isComposing: false,
key: "Escape",
location: 0,
metaKey: false,
repeat: false,
shiftKey: false,
which: 27,
charCode: 0,
keyCode: 27,
})
);
要找到任何键的正确值:
document.addEventListener(
"keydown",
(e)=>{console.log(e)}
);
按所需的键。
从日志中复制值。
参考:https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent
【讨论】:
你的意思是这样的
$(document).delegate('input','keypress', function(e){
code = e.keyCode ? e.keyCode : e.which;
if(code=== 27){
alert('esc pressed');
}
});
【讨论】:
没有 jQuery:
document.onkeydown = checkKeycode;
function checkKeycode(e) {
var keycode;
if (window.event) {
keycode = window.event.keyCode;
}
else if (e) {
keycode = e.which;
}
// enter
if (keycode == 13) {
}
// escape
if (keycode == 27) {
//place your action here
}
}
【讨论】: