MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

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,