flygui
小狐狸
小狐狸
  • UID26657
  • 注册日期2008-10-13
  • 最后登录2008-10-30
  • 发帖数11
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:4235回复:3

在插件中怎样回调javascript中的函数?

楼主#
更多 发布于:2008-10-22 16:18
如题。
主要是想实现javascript向插件注册回调函数的机制。

首先是我在javascript中调用插件的函数:      
plugin.addEventListener(topid,fun,capture)  //这是说明用的伪代码
其中第二个参数fun是一个javascript中的函数。这个参数fun到了插件内部时,已经被封装成了一个NPObject (就是NPClass和一个引用计数)。
伪代码:  plugin::Invoke(NPIdentifier name, const NPVariant *args,uint32_t argCount, NPVariant *result)    (fun这个参数被封装到NPVariant 中,其NPVariant.value就是NPObject )

我的问题是,在插件里面,我怎样根据这个NPObject(或者说是NPClass),去调用对应的javascript函数呢?
flygui
小狐狸
小狐狸
  • UID26657
  • 注册日期2008-10-13
  • 最后登录2008-10-30
  • 发帖数11
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2008-10-22 16:18
试了无数次,终于试出来了。
用 NPN_InvokeDefault()
其中的NPP参数不能是空。
flygui
小狐狸
小狐狸
  • UID26657
  • 注册日期2008-10-13
  • 最后登录2008-10-30
  • 发帖数11
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2008-10-22 16:18
这样就可以实现javascript中动态的注册事件监听了(用addEventListener()来注册)。

还需要实现静态的事件监听,就是在javascript以
<script for="plugin id" event="event string">
格式来注册事件监听。

谁有相关的建议或资料吗?
marffin
火狐狸
火狐狸
  • UID26524
  • 注册日期2008-10-04
  • 最后登录2012-10-17
  • 发帖数188
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2008-10-22 16:18
没有写过plugin,楼主在MDC里面翻吧
游客

返回顶部