gpt4 book ai didi

firefox - 事件是否由 Firefox 扩展 'trusted' 生成?

转载 作者:行者123 更新时间:2023-12-04 12:11:12 25 4
gpt4 key购买 nike

我的 Firefox 扩展生成事件,例如点击。作为响应,Web 应用程序尝试打开一个新窗口。但是,它在弹出窗口阻止程序启动时被 Firefox 阻止。但是,如果我手动单击一个按钮并在 Web 应用程序尝试打开窗口时响应该按钮,它会通过。

我的问题是为什么我的扩展程序生成的事件不被视为“受信任的”,并在用户点击时以相同的方式处理?是否有一些后门来实现这种行为?

最佳答案

编辑 : 这个答案已经过时了。它指的是自 Firefox 57 起不再支持的经典扩展。基于 Web 扩展 API 的扩展有 no way of generating trusted events .

是的,扩展生成的事件总是受信任的。这意味着 event.isTrusted将是 true并且事件将能够触发需要受信任事件的操作(例如 Ctrl-Tab keypress 事件以切换浏览器选项卡)。但是,它们保持合成事件,这意味着没有与它们关联的 native (操作系统级)事件。而且由于弹出窗口阻止程序与 native 事件一起使用,因此它不会看到您的扩展程序生成的事件。

您可以使用 nsIDOMWindowUtils.sendMouseEventToWindow()而不是 document.createEvent() .此方法用于测试,也会生成 native 事件。这对于弹出窗口阻止程序来说应该足够了。

var utils = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIDOMWindowUtils);
utils.sendMouseEventToWindow("click", 10, 20, 0, 1, 0);

关于firefox - 事件是否由 Firefox 扩展 'trusted' 生成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11456705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com