Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

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 的入口。

在程序中添加对象到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 的实现:

See also

文档标签和贡献者

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