我正在尝试使用 Chrome 扩展程序模拟用户点击和鼠标移动。
例如:
在我的内容脚本中有一个按钮点击。
document.querySelector("SOME_SELECTOR").click();
此行触发具有以下属性的单击事件:
MouseEvent {isTrusted: false}
如何触发 isTrusted 属性为 true 的 MouseEvent?
我正在尝试使用 Chrome 扩展程序模拟用户点击和鼠标移动。
例如:
在我的内容脚本中有一个按钮点击。
document.querySelector("SOME_SELECTOR").click();
此行触发具有以下属性的单击事件:
MouseEvent {isTrusted: false}
如何触发 isTrusted 属性为 true 的 MouseEvent?
您可以使用调试器接口注入可信事件。
chrome.debugger.attach(target, "1.2", function() {
chrome.debugger.sendCommand(target, "Input.dispatchMouseEvent", arguments)
})
https://developer.chrome.com/extensions/debugger
https://chromedevtools.github.io/devtools-protocol/1-2/Input
我不确定这是否可行,因为它是一个只读属性,它准确地表示您要伪造的内容,即事件是来自最终用户还是来自脚本。曾经存在基于浏览器的差异,(IE 曾经将所有事件视为受信任的事件),但我不知道是否仍然如此。
https://developer.mozilla.org/en-US/docs/Web/API/Event
可能仍然有解决此问题的方法,如本主题中针对 Firefox 所述:Firefox 扩展生成的事件是否“可信”?
但是您必须查看 chrome 文档以检查它们是否具有将事件委托回窗口的类似方法,因为它确实提到在某些情况下扩展事件是/可以被信任的。