我可以在不重新启动浏览器和计算机的情况下安装插件

时间:2011-08-11 18:42:05

标签: cross-browser npapi

我开发了一个NP API插件并正在玩它。我在下面观察了两件事

  1. 当我第一次安装插件时,我需要重新启动我的mac os来加载插件。
  2. 每当我更新插件时,我都需要重新启动浏览器。
  3. 我想在不重新启动浏览器和计算机的情况下安装插件。请建议

2 个答案:

答案 0 :(得分:11)

只要您将其安装为插件而不是扩展(例如firefox上的XPI),您就不需要重新启动浏览器。在Mac OS X上,这意味着将.plugin文件放在/ Library / Internet Plugins /或〜/ Library / Internet Plugins /中。您可以指示浏览器重新加载插件列表,如下所示:

navigator.plugins.refresh(false);

false告诉它不要刷新页面来执行此操作。

更新是一个稍微不同的问题;除非文件名与原始文件名不同,否则浏览器不会注意到在没有重新启动浏览器的情况下发生了插件更新。我通常的解决方案是在.plugin / bundle文件名中包含插件的版本号,例如“FBTestPlugin_1.0.0.plugin”,所以当它更新时,它会以不同的方式命名。

在Windows上,不同的NPAPI浏览器在插件检测方面存在不同的问题(以及这些浏览器的不同版本),但我发现这项工作的最佳方法是将每个插件安装在一个版本特定的子目录中,其中包含一个版本 - 特定文件名;这看起来有点矫枉过正,但我​​正在解决的案例是一个拥有5000万次安装的插件,并且所有支持的浏览器版本都必须能够正常工作。我还使用了注册表安装方法(HKCU / Software / MozillaPlugins)。

希望有所帮助

答案 1 :(得分:0)

在Windows上安装插件后,您应该这样调用:

navigator.plugins.refresh(true);

重新加载包含插件的当前页面。请参阅http://www.devguru.com/technologies/javascript/11232