javascript - 如何在 Chrome 扩展上模拟按键事件

标签 javascript jquery google-chrome-extension dom-events

我需要使用 chrome 扩展在 facebook 状态字段中使用给定的字符代码触发按键事件。有没有正确的方法来做到这一点。

我尝试使用以下代码。但似乎不起作用。

chrome.runtime.onMessage.addListener(function(message,sender,sendResponse){
    if(message.pressEnter){
        chrome.tabs.query({active: true}, function(tabs) {
            chrome.debugger.attach({ tabId: tabs[0].id }, "1.0");
            chrome.debugger.sendCommand({ tabId: tabs[0].id }, 'Input.dispatchKeyEvent', { type: 'keypress', windowsVirtualKeyCode:13, nativeVirtualKeyCode : 13, macCharCode: 13  });
            chrome.debugger.sendCommand({ tabId: tabs[0].id }, 'Input.dispatchKeyEvent', { type: 'keyDown', windowsVirtualKeyCode:13, nativeVirtualKeyCode : 13, macCharCode: 13  });
            chrome.debugger.detach({ tabId: tabs[0].id });
        });
    }
});

最佳答案

当您使用chrome调试器API的Input.dispatchKeyEvent时,目标元素是什么元素?常规事件调度需要指定目标元素。

此外,使用普通 javascript 调度 API 调度的事件不受信任,因此它们不会触发默认行为。例如。根据规范,使用 javascript 将字母 A 分派(dispatch)到文本输入不会执行任何操作。

因此,首先检查所分派(dispatch)的事件是否可信,并查找它所针对的元素。

关于javascript - 如何在 Chrome 扩展上模拟按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43783118/

相关文章:

javascript - HTML 状态下拉列表 - 显示选定的值而不是文本

javascript - 与 jQuery 的数据绑定(bind)不适用于 chrome

jQuery 基本表单验证 if or

javascript - chrome.storage.sync.set 不保存值

dom - Chrome 扩展程序 - 内容脚本无法按类名查找元素

javascript - 如何在呈现的表格上切换状态 - React Js

javascript - 我可以从 HTML 源代码中找到弹出窗口的名称吗?

javascript - Bootstrap 4 选项卡未链接

javascript - 如何在客户端避免过多的ajax调用和缓存json数据

javascript - 下载完成后播放声音