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

自定义命令

Mozcmd格式

mozcmd格式提供了一种简单的方法用来存储GCLI命令.对于Firefox用户来说,可以将 devtools.commands.dir 的字符串值设置为包含若干扩展名为mozcmd的文件的目录路径.

比如,如果 devtools.commands.dir 指向 C:\mozcmd (或者/Users/me/mozcmd [Mac/Unix]),则Firefox会从那个目录读取mozcmd文件.

语法

mozcmd文件的格式基于 JSON,不过添加了存储函数的能力 - 比如 exec 函数.

该文档的跟节点是一个数组,可以包含若干个命令对象,这些对象将自动的作为参数传递给 gcli.addCommand().

一个mozcmd文件示例

下面的例子来于 the demo repository.

[
  {
    name: 'hello',
    description: 'Show a message',
    params: [
      {
        name: 'name',
        type: 'string',
        description: 'Who to say hello to',
      }
    ],
    exec: function(args, context) {
      return 'Good evening, ' + args.name;
    }
  }
]

多个命令可以放在一个文件中,并且命令的名字是由"name"属性决定的,而不是由该mozcmd文件的文件名决定的.

只能在函数定义内部使用注释,其他位置不可以.

当一个命令被执行时, this 会指向包含这个方法的对象, 所以this.name就是当前命令的名字,如果需要进行一些设置,则应该首先执行这些设置,任何返回的结果应该缓存在this上.

安全性

The idea is to provide the user with the security that just having a mozcmd file available to Firefox is not a security risk, they need to access the command before any JavaScript is executed.

(注意 '访问' 并不意味着需要执行这个命令. 命令可以提供自定义参数的函数. '访问' 指的是在命令行中键入命令的名称 (不一定是否按了回车键)

mozcmd格式的当前实现只是简单的在沙箱中执行脚本.这并没有提供承诺的保护水平.Bug 767912 提出:解析器应该进行升级.

进阶文档

查看 documentation about writing commands.

扩展mozcmd格式

mozcmd格式被设计为可扩展的支持注册类型和字段的格式,该特性目前还没有启用,不过你可以看看它是被如何设计的.

文档标签和贡献者

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