Gecko 9.0之后 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6), 我们可以很容易的利用Category Manager添加新的APIs 到 window.navigator
对象。简单地添加一个到 "JavaScript-navigator-property" category 的入口。
在程序中添加对象到navigator
var categoryManager = Components.classes["@mozilla.org/categorymanager;1"] .getService(nsICategoryManager); categoryManager.addCategoryEntry("JavaScript-navigator-property", "myApi", MY_CONTRACT_ID, false, true);
这两句添加了一个新的对象, myApi
, 到 window.navigator
对象; 这个新添加的对象是基于由contract ID MY_CONTRACT_ID 所制定的组件的。
使用 manifest 文件添加对象到 navigator
我们也可以使用chrome manifest 文件添加对象到window.navigator
:
component {ffffffff-ffff-ffff-ffff-ffffffffffff} MyComponent.js contract @mozilla.org/mycomponent;1 {ffffffff-ffff-ffff-ffff-ffffffffffff} category JavaScript-navigator-property myComponent @mozilla.org/mycomponent;1
这样就添加了一个新的 API, myComponent
, 到navigator 对象, 然后就可以通过 navigator.myComponent
访问到。
实例
通过下面两个文件你可以明白接口 mozApps
的实现: