我正在尝试在 Mac 上为 chrome 制作一个 NPAPI 插件。我写了一个基本的 npapi 插件和一个基本的manifest.json
并background.html
加载它。我background.html
有一个embed
标签来通过 Mimetype 获取插件。
现在,当我从 Chrome 加载未打包的扩展程序并尝试调试 c++ 代码(在 xcode4 中)时,我发现函数按以下顺序调用:
NP_Initialize
NP_GetEntryPoints
NPP_New
NPP_Destroy
在此之后,当我单击扩展图标时,popup.html
应该会执行。我的popup.html
有以下几行:
第 1 行:
var pluginObj = document.getElementById("pluginId");
第 2 行:
pluginObj.Myfunction();
但是在第 1 行,NP_Getvalue()
函数没有被调用,因此“可编写脚本的 NPObject”没有被实例化。在第 2 行,Chrome JavaScript 控制台说:
Error in event handler for 'undefined': Object #<HTMLEmbedElement> has no method 'Myfunction' TypeError: Object #<HTMLEmbedElement> has no method 'Myfunction'
为什么NPP_Destroy
函数在 ? 之后立即被调用NPP_New function
?