2013-01-25 21 views
0

我们正在为Mac中的Safari开发一个Netscape插件我有一个NPP_New函数中的初始化失败并且返回NPERR_GENERIC_ERROR的场景。我怎样才能在Javascript中读取这个错误代码。NPAPI:如何读取NPP_New在JavaScript中的返回NPError值

在这方面的任何帮助将不胜感激。 在此先感谢。

+0

您是否必须在NPP_New中失败?难道你不能成功并允许脚本稍后向插件询问它的状态吗? –

+0

George,NPP_New启动时出现故障,我不应该加载插件。在这种情况下,我必须检查错误 – Srinidhi

回答

0

如果您需要确定这种特殊的故障情况我能想到的下列选项:

  • 成功NPP_New,但相应地设置插件内部状态(这样脚本可以再问插件吧)
  • 移动有问题的初始化了NPP_New,让它通过一个脚本函数调用(... ret = plugin.initStuff()
  • 如果你非得在NPP_New失败(例如,因为在OS X上没有支持绘图模型),你可以调用页面,通知脚本关于条件
+0

谢谢乔治,你是指通过设置插件的内部状态是什么意思?请原谅我的无知。我们如何设置插件的内部状态? – Srinidhi

+0

我的意思是记住你失败了,失败的原因。鉴于这一点,而不是没有通过NPP_New,你可以例如将失败原因公开为财产。 –

1

来自C NPAPI调用的错误代码在JS中不可用。但是,如果您已经知道错误代码是什么,那么您并不需要阅读它 - 只需尝试在try块中访问插件的一些脚本属性,并且如果失败,您就会知道您的插件没有执行任何操作吨负载。

+0

值得注意的是,这不允许区分原始方案,未安装的插件或被阻止的插件(flashblock,blocklist,...)。 –

+0

Georg是正确的,那是我需要的 – Srinidhi

+0

检测它是否已安装/启用很容易,因为您有JS访问插件列表。同意这虽然对点击播放和其他拦截器没有帮助。 – smorgan