何时可以;我的用户脚本在Javascript中触发右键单击(上下文菜单)

When can/can't my userscript trigger a right-click (context menu) in Javascript?

本文关键字:单击 右键 上下文 菜单 我的 用户 脚本 Javascript 何时可      更新时间:2023-09-26

我发现了很多像这个、这个和这个这样的问题,声称要展示如何"模拟右键单击"或"触发上下文菜单"等。然后我发现了这个问题,它只是说无法完成。我认为前3个问题都是触发自定义上下文菜单,即附加的菜单来取代内置的菜单。我只想模拟用户右键单击我选择的特定元素。

我已经尝试了第一个问题中的所有建议——createEvent("MouseEvents" / "HTMLEvents")initEvent / initMouseEvent("click" / "contextmenu")的不同组合,jQuery的trigger等。没有什么能显示默认的上下文菜单。

真的不可能吗?我从用户脚本(在Greasemonkey中)运行"privileged"这一事实有什么不同吗?我可以用全重量的Firefox扩展吗?

没错,您链接的前三个答案是针对自定义菜单/控件的。

第四个答案是正确的;你不能激活浏览器的上下文菜单,因为同样的原因,你无法激活浏览器的普通菜单。。。这将是一个巨大的安全漏洞,坏人会利用它。

同样,Greasemonkey脚本也不能做到这一点。Greasemonkey脚本具有一些提升的权限(仅当在沙盒模式下运行时,从GM 1.0开始),但Greasemonky的开发人员没有选择提供上下文菜单。(我也没有听说迫切需要这样的功能。)

我很确定一个完整的插件可以激活上下文菜单(或菜单项),但我从未尝试过,目前无法提供代码。