如何在Chrome扩展API的Input.dispatchKeyEvent中发送删除键?
解决Chrome Debugger API发送删除键无效的问题
要通过chrome.debugger.sendCommand发送删除键,你需要注意两个核心点:发送完整的按键事件序列,以及使用API推荐的参数字段,仅发送单个rawKeyDown事件或使用废弃参数都会导致无效。
可行实现方案
删除键的标准参数配置及完整事件流如下:
// 封装发送删除键的函数 async function dispatchDeleteKey(target) { // 模拟硬件按键按下 await chrome.debugger.sendCommand(target, "Input.dispatchKeyEvent", { type: 'rawKeyDown', code: 'Delete', key: 'Delete', keyCode: 46, windowsVirtualKeyCode: 46 }); // 触发DOM键盘按下事件 await chrome.debugger.sendCommand(target, "Input.dispatchKeyEvent", { type: 'keyDown', code: 'Delete', key: 'Delete', keyCode: 46, windowsVirtualKeyCode: 46 }); // 触发DOM键盘抬起事件 await chrome.debugger.sendCommand(target, "Input.dispatchKeyEvent", { type: 'keyUp', code: 'Delete', key: 'Delete', keyCode: 46, windowsVirtualKeyCode: 46 }); // 模拟硬件按键抬起 await chrome.debugger.sendCommand(target, "Input.dispatchKeyEvent", { type: 'rawKeyUp', code: 'Delete', key: 'Delete', keyCode: 46, windowsVirtualKeyCode: 46 }); }
之前代码无效的原因
- 仅发送
rawKeyDown单事件:浏览器需要完整的「按下→抬起」事件序列,才会将其识别为有效按键操作。 keyIdentifier已被废弃:Chrome Debugger API的Input.dispatchKeyEvent目前推荐使用code和key字段指定按键,keyIdentifier属于旧版参数,兼容性和有效性已下降。
内容的提问来源于stack exchange,提问作者丶 Limeー来夢 丶
相关产品推荐
相关产品推荐

