2

我正在尝试在 firefox 扩展端获取 MIME 类型列表。

浏览器 JavaScript 上下文中有导航器对象。它具有mimeTypes属性 - 浏览器识别的 MIME 类型列表。我需要使用附加 SDK 或 XPCOM 在附加脚本中获取该列表。我怎样才能做到这一点?我在 XPCOM 或 SDK 中找不到任何合适的方法。

提前感谢您的帮助。

4

1 回答 1

1

它具有 mimeTypes 属性 - 浏览器识别的 MIME 类型列表。

不,它不是——它只是为它们注册了插件 (Flash & Co.) 的 MIME 类型的列表。如果您需要获取插件信息,我通常建议使用nsIPluginHost.getPluginTags()method。不幸的是,插件标签没有与插件相关的 MIME 类型的信息。

因此,您无法避免获取navigator仅在窗口上下文中可用的对象。您可以使用page-worker模块来做到这一点:

require("page-worker").Page({
  contentScript: "var result = [];" +
                 "for (var i = 0; i < navigator.mimeTypes.length; i++)" +
                   "result.push(navigator.mimeTypes[i].type);" +
                 "self.postMessage(result);",
  contentURL: "about:blank",
  onMessage: function(mimeTypes) {
    // Do something with the MIME types
  }
});
于 2012-08-29T11:47:20.583 回答