如何在Firefox插件中执行命令?

3

我对编写Firefox插件还比较新,但是我已经成功地拼凑出了一个工作的扩展,除了其中的核心部分。

在代码的某个地方,我需要对文件执行一个系统命令。我在网上找到了一段代码片段并试图进行调整,但没有成功。以下是我的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执行此代码片段。

这个 execFile, initWithPath, createInstance 等等的东西真的需要吗??我只想像在CLI中一样执行命令:

$ somecommand -option value filename

1
你怎么知道它没有执行,你有异常吗? - Neil
1个回答

1

对我来说,只需将cmdargs更改为以下内容即可正常工作:

var cmd = '/usr/bin/say';
var args = ['hello', 'world' ];

正如Neil所说,我们需要更多信息来进行故障排除。请启用错误控制台并检查是否有任何消息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接