0

我创建了一个 chrome 扩展。现在,我想将其更改为 NPAPI 插件。我已经使用 npsimple 示例代码(来自 chrome)来构建插件。现在的问题是:

我有以下 java 脚本 chrome 扩展文件代码:

//test.js

chrome.browserAction.onClicked.addListener(function(tab) 
{   
    //this file calls content script file  
});

当我点击扩展图标时,这个文件就会被调用。现在我们不想通过点击扩展来调用这个文件(想在插件加载时调用它)。所以我们也可以举办其他活动。现在我必须从 NPAPI 插件调用 test.js 文件。我不知道我该怎么做。我们可以从 NPN_INVOKE 中的 NPAPI 插件触发一些假事件,并在 js 文件中注册一个侦听器并执行 js 文件。或者有什么方法可以在 NPAPI 代码中注入这个文件。

有没有其他更好的方法。。

请帮忙..提前谢谢...

4

1 回答 1

0

有两种选择。您可以使用NPN_Evaluate或者您可以使用NPN_GetValue获取对window对象的引用:

NPObject* window;
NPError err = NPN_GetValue(pNPP, NPNVWindowNPObject, &window);

一旦你有了窗口 NPObject,你就可以使用 NPN_Invoke 调用全局 javascript 函数,并使用NPN_GetPropertyNPN_SetProperty获取/设置属性

您可以考虑使用FireBreath,它极大地简化了所有这些。

于 2013-08-21T16:39:50.413 回答