2012-08-29 38 views
2

我想在Firefox擴展端獲得MIME類型列表。在Firefox附加腳本中獲取MIME類型數組

還有瀏覽器瀏覽器JavaScript上下文中的對象。 它有mimeTypes屬性 - 瀏覽器識別的MIME類型列表。 我需要使用附加SDK或XPCOM在附加腳本中獲取該列表。 我該怎麼做?我在XPCOM或SDK中找不到任何適當的方法。

在此先感謝您的幫助。

回答

1

它有mimeTypes屬性 - 瀏覽器識別的MIME類型列表。

不,它不是 - 它僅僅是一個MIME類型列表,它有一個插件(Flash & Co.)爲它們註冊。如果您需要獲取插件信息,我通常會推薦使用nsIPluginHost.getPluginTags() method。不幸的是,插件標籤沒有關於與插件關聯的MIME類型的信息。

因此,您無法避免只能在窗口上下文中使用的navigator對象。你可以使用page-worker module

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 
    } 
}); 
+0

非常感謝!是否有任何序列化限制?例如,我無法傳輸對象** navigator **本身。 – Dmitry

+0

@Dmitry:這是[JSON序列化程序](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON/stringify)。 –