我有一个在 Safari、Chrome 和 Firefox 中运行的 NPAPI 插件。我可以使用事件回调处理所有组合键,但我遇到的问题是某些组合键。
在插件中,我尝试使用 Command+O 来触发插件的文件打开对话框,但浏览器也在触发其打开文件对话框。
假设,为事件处理方法返回 TRUE 应该报告插件处理事件的浏览器,但我没有运气。
您忽略了指定您使用的操作系统;基于您说“Command+O”而不是“Ctrl-O”的事实,我假设您使用的是 Mac。坏消息是,在 Mac 上,所有事件都从浏览器传递给插件。如果浏览器没有选择可以覆盖事件的处理(听起来就是这种情况),那么您可能无能为力,除了可能使用一些操作系统挂钩来拦截密钥浏览器获取之前的事件,这似乎有风险。
在 Windows 上,你可能会更幸运一些,因为窗口插件实际上应该在事件被传递到父窗口之前先获取事件,从而可以拦截它们。但是,在 Mac 上,这一切都是无窗口的,当浏览器想要将事件提供给您时,您就会收到事件。