我正在为嵌入式本机浏览器(Linux)开发NPAPI插件。我想要一个来自javascript的回调函数,它将在我的插件中调用回调函数。根据按键盘键产生的事件。我必须不断向浏览器窗口发送事件。我对这个需求帮助完全陌生。
提前致谢。
答案 0 :(得分:2)
如果您使用的是FireBreath,documentation on firing events已涵盖此内容。
如果你正在编写一个简单的NPAPI插件,你的插件应该实现addEventListener(type, listener, ...)
& removeEventListener()
。
由于您已经知道如何向插件添加脚本化功能,因此您只需添加对这两者的支持。
对于 addEventListener()
,您会收到以下参数:
type
- 应该是标识事件的字符串listener
- 应该是一个对象,保留&存储它useCapture
- 应该是布尔值,可选,如果不存在则假设为false
要存储您可以使用的侦听器,例如使用multimap<SomeStringType,NPObject*>
成员,将事件字符串作为键,将侦听器对象作为值。不要忘记retain听众。
要触发事件,然后获取equal_range()
并使用NPN_InvokeDefault()
和侦听器对象。
removeEventListener()
会收到与addEventListener()
相同的参数,然后您应该erase()
指定该事件字符串的侦听器。不要忘记release监听器对象。
要尊重useCapture
,请相应地扩展上述内容。