java - 如何获取FF中插件的安装位置?

标签 java javascript firefox asynchronous firefox-addon

我是开发 FF 扩展的新手。我已经下载了 javaDemo.xpi 并尝试从 javascript 调用 java。但我停在了

Components.classes['@mozilla.org/extensions/manager;1'].getService(Components.interfaces.nsIExtensionManager);未定义

我使用的是 FF 7.0.1。我尝试过 AddonManager API。但我找不到如何获取插件位置,并且厌倦了处理异步回调函数。

Warning: WARN addons.manager: Exception calling callback: ReferenceError: alert is not defined
Source File: resource://javademo/LiveConnectUtils.js
Line: 65

最佳答案

nsIExtensionManager API 仅适用于 Firefox 3.x,从 Firefox 4 开始您需要使用 the AddonManager API 。像这样的事情:

Components.utils.import("resource://gre/modules/AddonManager.jsm");
AddonManager.getAddonByID("me@mydomain.com", function(addon)
{
  var manifestURI = addon.getResourceURI("install.rdf");
  alert("Add-on's install.rdf is located at: " + manifestURI.spec);
});

请注意,manifestURI.spec 通常不是 file:// URL,而是 jar: URL - 大多数扩展都是“安装时解压,因此所有扩展文件都位于 JAR(也称为 ZIP)文件内。您可以使用 XMLHttpRequestNetUtil.asyncFetch()读取这些文件,无论该 URL 指向什么。

关于java - 如何获取FF中插件的安装位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7644216/

相关文章:

javascript - 将 id 从 json 传递到 URL 时,传递了未定义的值

css - 使用 Firefox 浏览器覆盖特定的内联样式?

java - 调用泛型构造函数?

java - Spring MVC JavaConfig webapp中的"error-page"配置? (没有 web.xml)

java - 转换 ActiveRecord :Relation to java array

firefox - 使用 Selenium webdriver 动态更改 Firefox 中的代理

javascript - 如何禁止浏览器在表单的输入标签中呈现旧值

java - 使用数据绑定(bind)时,不会调用自定义 setter

Javascript 相当于 PHP 的::(范围解析运算符)

javascript - 使用原型(prototype)时未处理点击事件(使用 lowpro)