javascript - 通过 exec 将变量传递给 PhantomJS

标签 javascript node.js command-line-interface phantomjs gruntjs

我开始使用 Grunt 并想将一个变量传递给我通过 exec 运行的 PhantomJS 脚本。我想要做的是为脚本传递一个 url 以从中获取屏幕截图。任何帮助将不胜感激,谢谢!

达伦

Grunt 脚本

exec('phantomjs screenshot.js',
    function (error, stdout, stderr) {
        // Handle output
    }
);

截图.js

var page = require('webpage').create();
page.open('http://google.com', function () {
    page.render('google.png');
    phantom.exit();
});

最佳答案

命令行参数可通过模块 require('system').args (Module System) 访问。第一个始终是脚本名称,然后是后续参数

此脚本将枚举所有参数并写入控制台。

var args = require('system').args;
if (args.length === 1) {
    console.log('Try to pass some arguments when invoking this script!');
}
else {
    args.forEach(function(arg, i) {
        console.log(i + ': ' + arg);
    });
}

在你的情况下,解决方案是

咕噜声

exec('phantomjs screenshot.js http://www.google.fr',
    function (error, stdout, stderr) {
        // Handle output
    }
);

截图.js

var page = require('webpage').create();
var address = system.args[1];
page.open(address , function () {
    page.render('google.png');
    phantom.exit();
});

关于javascript - 通过 exec 将变量传递给 PhantomJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16752882/

相关文章:

javascript - 检查 JS 对象类型的最准确方法?

javascript - 触发附加元素上的现有事件

node.js - aws ubuntu上的 Node 错误但不是OSX

windows - Perforce:如何从更改列表创建文件列表?

javascript - 打开/关闭包含 div 和图像

javascript - 使用 HTML 按钮将文本复制到剪贴板

node.js - Redis 发布/订阅 vs Node 事件发射器

node.js - 从 Typescript 生成的导入 Node.js 模块的 'default' 部分是什么?

sails.js - 在 Sails.js 应用程序中运行 CLI 命令

Perl - 如何直接在 Perl shell/解释器中键入/执行/运行 Perl 语句?