gpt4 book ai didi

javascript - NPAPI - 在插件中使用 javascript 对象/函数

转载 作者:行者123 更新时间:2023-11-30 07:46:48 25 4
gpt4 key购买 nike

我已经阅读了有关如何获取 DOM 元素句柄的信息。这是一个非常有用的链接:http://forums.mozillazine.org/viewtopic.php?f=27&t=1521545

我现在的问题是,我能否获得我创建的 Javascript 变量/对象或任意函数的句柄?

在页面加载时,我有一个脚本执行这样的事情......

var controller = new Controller()

function callme(param1, param2) { ... }

现在,在我的插件中,我希望能够从我的 Controller 对象中调用方法。或者,执行该函数 callme。这可能吗?我该怎么做?

谢谢,

克里斯

最佳答案

从您的链接中您知道如何获取 DOM 窗口的 NPObject;从那里您需要知道的是所有全局 javascript 变量实际上都是窗口的属性。

var controller = new Controller();

如果您在全局范围内完成了此操作,那么 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);

然后您可以访问 Controller 对象的属性或调用方法。请注意,如果 Controller 是一个函数,您可以使用 NPN_InvokeDefault 调用它。

顺便说一句,FireBreath将其中的大部分自动化。

关于javascript - NPAPI - 在插件中使用 javascript 对象/函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4601682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com