【发布时间】:2020-04-20 21:06:02
【问题描述】:
有什么方法可以通过 Javascript 以编程方式触发键盘快捷键?例如,以 gmail.com 为例,按“e”将存档选定的电子邮件。
我可以编写任何类型的代码(比如在 Chrome 扩展程序中)来模拟用户在键盘上按“e”吗?
例如我尝试在 Chrome 控制台中复制粘贴类似的内容:
document.body.addEventListener('keydown', function(event) {
console.log('key detected: ', event);
});
document.body.addEventListener('click', () => {
console.log('click...');
document.body.dispatchEvent(new KeyboardEvent('keydown', {
'key': 'e',
'keyCode': 69,
'which': 69,
'code': 'KeyE',
'isTrusted': true, // this has no effect
'bubbles': true,
'cancelable': true,
'view': window,
'charCode': 0,
}));
});
因此,在页面上的任何点击都会打印出该键,这看起来与在键盘上按“e”相同。但点击事件按键不会触发 Gmail 中的“存档”功能。
是不是事件不受信任,无法按我的意愿去做?
【问题讨论】:
-
是的,我知道,这就是这不起作用的原因吗?
-
都试过了,都不管用。
标签: javascript google-chrome-extension