如何在Firefox附加组件中执行命令?

时间:2011-07-21 00:30:49

标签: javascript firefox firefox-addon

我对编写Firefox附加组件还很陌生,但我已经达到了一个目的,我将一个工作扩展修补了,除了它的核心。

在代码中的某个时刻,我需要对文件执行system-command。我在网上找到了一个剪辑并尝试调整它,但没有运气。来自我的xpi/components/script.js

var cmd = '/usr/bin/somecommand'

var args = ['-option', 'value', f.path ];

var execFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);

execFile.initWithPath(cmd);

if (execFile.exists()) {
    process.init(execFile);
    process.run(false, args, args.length);
}

有人能告诉我这里有什么问题吗?我已经组装了命令并且我已经获得了文件名,但我无法让Firefox执行此代码片段。

这个execFileinitWithPathcreateInstance等真的需要吗?我只想像在CLI中那样执行命令:

$ somecommand -option value filename

1 个答案:

答案 0 :(得分:1)

cmdargs更改为:

,对我来说很好
var cmd = '/usr/bin/say';
var args = ['hello', 'world' ];

正如Neil所说,我们需要更多信息进行故障排除。启用Error Console并检查是否有任何消息。