首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装时未加载NPAPI插件,浏览器插件方法调用失败

安装时未加载NPAPI插件,浏览器插件方法调用失败
EN

Stack Overflow用户
提问于 2013-08-07 14:36:58
回答 1查看 206关注 0票数 0

我有浏览器插件的Safari/火狐在Mac.When用户启动网页,它会要求用户下载的plugin.Ideally,它应该刷新页面时,下载完成,并利用插件。

代码能够检测到插件,但是当我在插件中调用方法时,它抛出了异常。如果我手动刷新页面并调用插件方法,我就能够做到这一点。

代码语言:javascript
复制
InitPlugin()
{
var IsPluginInstalled;
var plugin = navigator.plugins["My Plug-In"]; // success
var engine;
if (plugin)
{
     engine = plugin.getElementById("MyPlugin");
     var version = engine.getAttributeByKey("my_plugin_version"); // crashing here.
    IsPluginInstalled  = true;                             

}
}
RefreshPlugin()
{
       navigator.plugins.refresh();
       if (!InitPlugin())
       {
          setInterval(InitPlugin,3000);
       }

}

安装后,页面应自动刷新,这是代码工作良好,如果刷新页面手动。

EN

回答 1

Stack Overflow用户

发布于 2013-08-07 20:32:06

我不知道这会在哪里刷新页面。不过,应该起作用的是重新实例化插件(例如,将其切换为display:none并返回)。

这看起来你可能访问插件太快了-插件可能还没有完成实例化。

在找到它在navigator.plugins中列出并(重新)实例化后,您可以:

  • 会定期尝试访问它,直到它正常工作,或者
  • (最好)在完成加载

后将您的插件调用到页面中

在这两种情况下,您都希望在一段“合理的”时间后超时,并得出结论

  • 无法加载或
  • 插件正在被阻止(插件被设置为即点即用或某个扩展阻止了它)

..。在MDN上有一个关于这个的best-practices article

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

https://stackoverflow.com/questions/18096282

复制
相关文章

相似问题

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