我正在尋找谷歌,沒有找到任何有用的提示。 我知道phantomjs不能使用npm模塊 這是絕望的。 phantomjs系統模塊不是節點系統模塊,因此npm包幾乎不能與phantomjs兼容。非常沮喪,我只能寫自己的命令行參數解析
創建一個文件commandLineArgs.js
module.exports = function (args, optionDefinitions) {
// via : https://stackoverflow.com/questions/35454087/read-phantomjs-command-line-options-inside-script
var result = {
args: [],
options: {}
};
for (var j in optionDefinitions) {
var def = optionDefinitions[j];
if (def['multiple'] === true) {
result.options[def['name']] = [];
}
}
checkPoint_i:for (var i = 1; i < args.length; i++) {
var arg = args[i];
if (args[i].slice(0, 1) === "-") {
var k = args[i].replace(/^-{1,2}/, '');
for (var j in optionDefinitions) {
var def = optionDefinitions[j];
if (def['name'] === k || def['alias'] === k) {
i++;
if (def['multiple'] === true) {
result.options[def['name']].push(args[i]);
} else {
result.options[k] = args[i];
}
continue checkPoint_i;
}
// no def so change to args
}
}
result.args.push(arg);
}
return result;
};
然後將其標記在你的代碼,使用方法如下
var commandLineArgs = require('./node_modules/command-line-args');
var optionDefinitions = [
{name: 'header', alias: 'H', type: String, multiple: true},
{name: 'debug'},
];
var command = commandLineArgs(system.args, optionDefinitions);
console.log(command.options['header']);
console.log(command.args);
運行:phantomjs yourSctipt.js --header "Host: google.com" --debug true http://www.google.com/
// output [Host: google.com]
// output [http://www.google.com/]
希望這能幫到你
我知道有一個重複,但我找不到它。答案:不,對每個選項都是不可能的,但對於[某些](http://phantomjs.org/api/webpage/property/settings.html)。 –
我還沒有找到答案。我希望這可能超過[settings](http://phantomjs.org/api/webpage/property/settings.html) –