We're looking for a person or people to help audit MDN to find places we could speed up. Is this you or someone you know? Check out the RFP: https://mzl.la/2IHcMiE

Adding APIs to the navigator object

Gecko 9.0之后 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6), 我们可以很容易的利用Category Manager添加新的APIs 到 window.navigator 对象。简单地添加一个到 "JavaScript-navigator-property" category 的入口。


var categoryManager = Components.classes["@mozilla.org/categorymanager;1"]

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 的实现:

See also


 此页面的贡献者: ziyunfei, crazybullet
 最后编辑者: ziyunfei,