如何使用JavaScript触发'isTrusted = true'点击事件?

时间:2016-01-18 11:25:34

标签: javascript google-chrome-extension javascript-events

我尝试使用Chrome扩展程序冒充用户点击和鼠标移动。

例如: 在我的内容脚本中有一个按钮单击。

document.querySelector("SOME_SELECTOR").click();

此行触发具有以下属性的click事件:

MouseEvent {isTrusted: false}

如何触发isTrusted属性为true的MouseEvent?

2 个答案:

答案 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>