0

我已经成功发送了一封信(或使用此语法的文本字符串):

chrome.debugger.sendCommand({ tabId: tabs[0].id },'Input.dispatchKeyEvent',{ type: 'keyDown', text: "b", isKeypad: true });

这可以满足我的大部分需求,但我真的希望能够发送特殊字符,如制表符。第一步是让我能够使用诸如 windowsVirtualKeyCode 或 nativeVirtualKeyCode 之类的参数发送一个字符,但是当我用这样的东西替换上面的行时,我没有得到任何响应。

chrome.debugger.sendCommand({ tabId: tabs[0].id },'Input.dispatchKeyEvent',{ type: 'keyDown', windowsVirtualKeyCode: 66, nativeVirtualKeyCode: 66, isKeypad: true });

我不确定为什么顶部的代码有效而底部的代码无效。也许我为字母 b 使用了错误的小数点。或者更有可能我错过了所需的参数。在验证我可以成功编写 windowsVirtualKeyCode: 0x42 之后,我的最终目标是发送一个制表符,我认为它是十进制值 9。

我无法弄清楚当我的第二行代替正在工作的顶行时,我的第二行在哪里没有产生相同的响应。

4

1 回答 1

0

以下功能将按 Tab 键:-


function pressTab(tabId) {
    // dispatch rawKeyDown
    chrome.debugger.sendCommand({
        tabId: tabId
    }, 'Input.dispatchKeyEvent', {
        autoRepeat: false,
        code: "Tab",
        isKeypad: false,
        key: "Tab",
        location: 0,
        modifiers: 0,
        text: "",
        type: "rawKeyDown",
        unmodifiedText: "",
        windowsVirtualKeyCode: 9
    })
    
    // dispatch keyUp
    chrome.debugger.sendCommand({
        tabId: tabId
    }, 'Input.dispatchKeyEvent', {
        code: "Tab",
        key: "Tab",
        location: 0,
        modifiers: 0,
        type: "keyUp",
        windowsVirtualKeyCode: 9
    })    
}

pressTab(tabs[0].id)
于 2021-12-16T11:02:10.697 回答