rkfirefox
小狐狸
小狐狸
  • UID34419
  • 注册日期2010-11-04
  • 最后登录2010-11-11
  • 发帖数6
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:4282回复:5

firefox的插件如何调用网页上的javascript函数?

楼主#
更多 发布于:2010-11-10 14:15
用npruntime开发firefox下的plugin,我从昨天试验在插件中调用网页中的js函数,就是类似于ActivX的event,我的代码是这样的,但是还没有看到效果,能指教一下要怎么改吗,多谢!

网页有个函数
fucntion listener(str)
{
alert(str);
return 0;
}




插件中某个方法的实现函数中添加如下:

NPObject oWin, *poJsfun;
NPIdentifier idLis;
NPVariant vJsfun, vArgs[1], vRst;
NPN_GetValue(mNpp, NPNVWindowNPObject, &oWin);
idLis = NPN_GetStringIdentifier("listener");
NPN_GetProperty(mNpp, &oWin, idLis, &vJsfun);//这一行调试会挂掉
STRINGZ_TO_NPVARIANT("aaaaa", vArgs[0], &vRst);
NPN_InvokeDefault(mNpp, NPVARIANT_TO_OBJECT(vJsfun), vArgs, 1, &vRst)
hoary20
小狐狸
小狐狸
  • UID34490
  • 注册日期2010-11-10
  • 最后登录2010-11-16
  • 发帖数7
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2010-11-10 14:15
LZ的问题解决了么?能贴出来共享么?
rkfirefox
小狐狸
小狐狸
  • UID34419
  • 注册日期2010-11-04
  • 最后登录2010-11-11
  • 发帖数6
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2010-11-10 14:15
搞这个的都太小气,会也不告诉别人怎么解决的,鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!


刚刚找到个更简陋的方法,可以曲折实现

我的愿意是在plugin中找到js函数的对象,现在不能找到,只能用单独的方法把js函数传进来,然后NPN_InvokeDefault时就可以,因为这个函数着呢个只有一个参数是难搞的,也是几乎找不到demo的,就是在plugin中获取js函数对象,现在用另外的接口传进来,就不要操心如何获取的问题了,这样也是可以的



鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!
hoary20
小狐狸
小狐狸
  • UID34490
  • 注册日期2010-11-10
  • 最后登录2010-11-16
  • 发帖数7
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2010-11-10 14:15
能不能给个详细点的说法呢。
hoary20
小狐狸
小狐狸
  • UID34490
  • 注册日期2010-11-10
  • 最后登录2010-11-16
  • 发帖数7
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2010-11-10 14:15
在开发firefox插件的过程中,在插件内可能要调用js函数,实现事件通知。

我目前所掌握的方法(参照mplayer firefox插件):

插件端调用 void NPP_URLNotify(NPP         instance,
                   const char* url,
                   NPReason    reason,
                   void*       notifyData);
方法, url函数就是要调用的 js函数,如"javascript:onfunc(arg);"

在 页面内就要有对应的 js函数 onfunc(arg)
hoary20
小狐狸
小狐狸
  • UID34490
  • 注册日期2010-11-10
  • 最后登录2010-11-16
  • 发帖数7
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2010-11-10 14:15
游客

返回顶部