chr*_*isd 1 javascript plugins npapi
我已经读过如何获取DOM元素的句柄.这是一个非常有用的链接:http://forums.mozillazine.org/viewtopic.php?f = 27&t = 1521545
我现在的问题是,我可以处理我创建的Javascript var/object或任意函数吗?
在页面加载时,我有一个脚本执行这样的事情......
var controller = new Controller()
Run Code Online (Sandbox Code Playgroud)
要么
function callme(param1, param2) { ... }
Run Code Online (Sandbox Code Playgroud)
现在,从我的插件中,我希望能够从我的控制器对象中调用方法.或者,执行该函数callme.这是可能的,我将如何做到这一点?
谢谢,
克里斯
从您的链接中,您知道如何获取DOM窗口的NPObject; 从那里你需要知道的是,所有全局javascript变量实际上是窗口的属性.
var controller = new Controller();
Run Code Online (Sandbox Code Playgroud)
如果您已在全局范围内完成此操作,则window.controller是您的变量,因此您只需执行以下操作:
/* Get window object */
NPObject* window = NULL;
NPN_GetValue(aInstance, NPNVWindowNPObject, &window);
/* Get document object */
NPVariant controllerVar;
NPIdentifier id = NPN_GetStringIdentifier("controller");
NPN_GetProperty(aInstance, window, id, &controllerVar);
NPObject* document = NPVARIANT_TO_OBJECT(controllerVar);
Run Code Online (Sandbox Code Playgroud)
然后,您可以访问Controller对象的属性或调用方法.请注意,如果控制器是一个功能,你可以调用它NPN_InvokeDefault.
顺便说一句,FireBreath自动化了大部分内容.
| 归档时间: |
|
| 查看次数: |
2310 次 |
| 最近记录: |