0

想通过 C++ 插件在浏览器窗口中触发鼠标点击功能,用 FireBreath 编写。但是下面的代码在点击时什么也没有发生。得到以下代码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(...)单独测试并且它正在工作。点击检测器部分似乎有问题,但是什么?

4

1 回答 1

1

FireBreath 中的 PluginWindow 事件仅适用于插件所在的区域,而不适用于网页上的其他地方。仅当使用此方法单击插件本身时,您才会获得事件,并且如果任何 DOM 元素悬停在您的插件上(即使您的插件因为窗口化而在前面绘制),您最终可能会丢失该元素的事件。

您可以使用 javascript 获取整个页面的点击事件。

于 2013-05-29T19:51:08.383 回答