阅读:4992回复:5
firefox的插件如何调用网页上的javascript函数?
用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) |
|
1楼#
发布于:2010-11-10 14:15
|
|
2楼#
发布于: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) |
|
3楼#
发布于:2010-11-10 14:15
能不能给个详细点的说法呢。
|
|
4楼#
发布于:2010-11-10 14:15
搞这个的都太小气,会也不告诉别人怎么解决的,鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!
刚刚找到个更简陋的方法,可以曲折实现 我的愿意是在plugin中找到js函数的对象,现在不能找到,只能用单独的方法把js函数传进来,然后NPN_InvokeDefault时就可以,因为这个函数着呢个只有一个参数是难搞的,也是几乎找不到demo的,就是在plugin中获取js函数对象,现在用另外的接口传进来,就不要操心如何获取的问题了,这样也是可以的 鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们!鄙视他们! |
|
5楼#
发布于:2010-11-10 14:15
LZ的问题解决了么?能贴出来共享么?
|
|