首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >npp_destroy在npp_new之后立即被调用

npp_destroy在npp_new之后立即被调用
EN

Stack Overflow用户
提问于 2012-10-11 06:41:02
回答 1查看 495关注 0票数 1

我正在努力为Mac上的chrome制作一个NPAPI插件。我编写了一个基本的npapi插件和一个基本的manifest.jsonbackground.html来加载它。我的background.html有一个embed标记来通过Mimetype获取插件。

现在,当我从Chrome加载我的未打包扩展并尝试调试c++代码(在xcode4中)时,我发现这些函数被按以下顺序调用:

  1. NP_Initialize
  2. NP_GetEntryPoints
  3. NPP_New
  4. NPP_Destroy

在此之后,当我单击扩展图标时,应该执行popup.html。我的popup.html有以下几行:

第1行:

代码语言:javascript
复制
var pluginObj = document.getElementById("pluginId");

第2行:

代码语言:javascript
复制
pluginObj.Myfunction();

但是在第1行中,NP_Getvalue()函数没有被调用,因此没有实例化“NPObject脚本”。在第2行,Chrome JavaScript控制台上写着:

代码语言: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之后立即被调用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-11 09:15:25

您是否在插件中完成了绘图和事件模型协商?从Mac的Chrome 22开始,长期不受欢迎的QuickDraw和碳模式不再受支持,如果你的插件不和现代模式谈判,它就会在init之后被销毁。请参阅这里,例如执行此操作的代码。

(是的,不幸的是,32位插件的默认模型是旧的、不受欢迎的模型,但是由于所有现有的插件都有旧的行为,因此无法在规范中改变这一点。)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12833641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档