Chrome 有没有办法从网页向本地浏览器的上下文菜单添加项目?

jgzswidk  于 12个月前  发布在  Go
关注(0)|答案(2)|浏览(128)

尝试为网站实现上下文菜单是困难的,至少在我的经验中是如此。我主要使用react构建单页面应用程序,其中上下文菜单通常是必需的。虽然到目前为止,我还没有在npm上找到一个好的上下文菜单库。我目前选择的库是react menu,它很不错,但有缺陷,性能不好。所有其他的上下文菜单库似乎都缺乏功能,或者已经停产好几年了。我想知道浏览器的内置上下文菜单是否可以像chrome.contextMenus API一样由网站操作。
我最近发现Chrome devtools实际上只是一个普通的网页,在任何基于chrome的浏览器上,你可以在这里访问它:devtools://devtools/bundled/devtools_app.html。当然,devtools在很多地方使用自定义上下文菜单,比如在选项卡上。

  • 此屏幕截图取自ms edge,但Chrome也是如此 *

很明显,自定义上下文菜单可以以某种方式实现,考虑到我可以在普通的浏览器选项卡中重现这个上下文菜单。我知道devtools运行在一个浏览器保护协议(devtools)中,它可能会被赋予额外的特权来访问上下文菜单中使用的任何API,但我不明白为什么chromium会故意限制这样一个api的使用。
像这样的API将是非常有用的,我将通过the chrome devtools source code来了解这是如何实现的,但由于某种原因,api仅限于普通网站,我想知道是否有人知道devtools中使用的api。

vc6uscn9

vc6uscn91#

据我所知,制作自定义本地上下文菜单的API并不存在
Firefox有一个实验性的/非标准的API,但它再次被删除:https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/contextmenu
所以,就我目前所知,在一般的网络上是不可能的。不过,根据您的上下文,您可能有权修改本机上下文菜单:

5w9g7ksd

5w9g7ksd2#

除了through extensions之外,目前还不能改变浏览器的本地上下文菜单。
你提到你已经尝试过上下文菜单库,我可以建议(无耻的插件)my context menu library吗?

相关问题