我对编写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执行此代码片段。
这个execFile
,initWithPath
,createInstance
等真的需要吗?我只想像在CLI中那样执行命令:
$ somecommand -option value filename
答案 0 :(得分:1)
cmd
和args
更改为:
var cmd = '/usr/bin/say';
var args = ['hello', 'world' ];
正如Neil所说,我们需要更多信息进行故障排除。启用Error Console并检查是否有任何消息。