我尝试使用Chrome扩展程序冒充用户点击和鼠标移动。
例如: 在我的内容脚本中有一个按钮单击。
document.querySelector("SOME_SELECTOR").click();
此行触发具有以下属性的click事件:
MouseEvent {isTrusted: false}
如何触发isTrusted属性为true的MouseEvent?
答案 0 :(得分:5)
您可以使用调试器界面注入受信任的事件。
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
答案 1 :(得分:2)
我不确定这是否可行,因为它是一个只读属性,表示您正在尝试伪造的内容,即如果事件来自最终用户或来自脚本。 曾经存在基于浏览器的差异,(IE曾经将所有事件都视为可信任的),但我不知道是否仍然如此。
https://developer.mozilla.org/en-US/docs/Web/API/Event
如本主题中针对firefox所述,可能还有其他方法:Are events generated by Firefox extension 'trusted'?
但是您必须查看chrome文档以检查他们是否有类似的方法将事件委托回窗口,因为它确实提到扩展事件在某些情况下是/可以变得可信。 / p>