想要通过使用FireBreath编写的C ++插件在浏览器窗口中单击鼠标来触发功能。
但是下面的代码点击时没有任何事情发生。
在TestPluginAPI.h
中获得以下代码:
BEGIN_PLUGIN_EVENT_MAP()
EVENTTYPE_CASE(FB::MouseDownEvent, onMouseDown, FB::PluginWindow)
END_PLUGIN_EVENT_MAP()
virtual bool onMouseDown(FB::MouseDownEvent *evt, FB::PluginWindow *);
此代码位于testPluginAPI.cpp
:
bool TestPluginAPI::onMouseDown(FB::MouseDownEvent *evt, FB::PluginWindow *)
{
if(evt->m_Btn == FB::MouseButtonEvent::MouseButton_Left)
{
fire_showcrd(FB::variant_list_of(evt->m_x)(evt->m_y));
}
return 0;
}
Fire_showcrd(...)
已单独测试,并且正在运行。点击检测器部分似乎有问题,但是什么?
答案 0 :(得分:1)
FireBreath中的PluginWindow事件仅适用于插件所在的区域,而不适用于网页上的其他位置。只有在使用此方法单击插件本身时才会获得事件,并且如果任何DOM元素悬停在您的插件上(即使您的插件因为窗口而在前面绘制),您最终可能会将事件丢失到该元素。
您可以使用javascript获取整个页面的点击事件。