我正在为嵌入式本机浏览器 (Linux) 开发 NPAPI 插件。我想要一个来自 javascript 的回调函数,它将在我的插件中调用回调函数。根据键盘按键产生的事件。我必须将事件连续发送到浏览器窗口。我对此完全陌生,需要帮助。
提前致谢 。
我正在为嵌入式本机浏览器 (Linux) 开发 NPAPI 插件。我想要一个来自 javascript 的回调函数,它将在我的插件中调用回调函数。根据键盘按键产生的事件。我必须将事件连续发送到浏览器窗口。我对此完全陌生,需要帮助。
提前致谢 。
如果您使用的是 FireBreath,关于触发事件的文档已经涵盖了这一点。
如果你正在编写一个普通的 NPAPI 插件,你的插件应该实现addEventListener(type, listener, ...)
& removeEventListener()
。
由于您已经知道如何向插件添加可编写脚本的函数,您只需要添加对这两个函数的支持。
addEventListener()
你得到以下论点:
type
- 应该是一个标识事件的字符串listener
- 应该是一个对象,保留并存储它useCapture
- 应该是一个布尔值,可选的,如果不存在的话false
要存储监听器,您可以使用一个multimap<SomeStringType,NPObject*>
成员,事件字符串作为键,监听器对象作为值。不要忘记留住听众。
要触发一个事件,您可以获取equal_range()
它并NPN_InvokeDefault()
与侦听器对象一起使用。
removeEventListener()
接收相同的参数,addEventListener()
然后您应该erase()
为该事件字符串指定侦听器。不要忘记释放侦听器对象。
为了尊重useCapture
相应地扩展上述内容。