在Windows平台上,当我切换到另一个窗口时,浏览器将收到WM_ACTIVATE消息。 无论如何将WM_ACTIVATE消息传递给插件? 我已经尝试了NPP_HandleEvent,但它似乎根本不起作用。
答案 0 :(得分:2)
对于Windows NPP_HandleEvent()
仅用于无窗口插件,默认情况下它们是窗口化的。因此,除非您明确选择无窗口,否则这就是NPP_HandleEvent()
未被调用的原因。
对于窗口化插件,您需要将插件窗口子类化以接收窗口消息(例如,参见Mozillas测试插件源中的Subclass()
)。
对于无窗口插件(应该首选),WM_ACTIVATE
为not delivered to the plugin
你真的需要处理WM_ACTIVATE
或者你需要知道插件何时可见/聚焦?这可以通过检查NPP_SetWindow()
的0大小剪辑片段和焦点事件来确定
如果你真的需要知道窗口激活(为什么?),我能想到的下一个最好的事情就是在窗口上监听focus
DOM事件。