【问题标题】:Is there any way to pass a variable to evaluate or alternatively load a json file from within evaluate?有没有办法传递一个变量来评估或从评估中加载一个 json 文件?
【发布时间】:2018-06-11 18:46:57
【问题描述】:
我正在尝试将位于本地 JSON 文件中的一些数据传递到 casper.evaluate 但似乎无法从那里访问。我尝试从外部评估加载它,但我无法在评估内部读取它。我也尝试从评估中加载它,如下所示:
var keyWords = casper.evaluate(function () {
// load local JSON file
var json = require('../keywords.json');
return json;
});
console.log(JSON.stringify(keyWords));
【问题讨论】:
标签:
javascript
json
casperjs
【解决方案1】:
您可以使用以下方法将 JSON 作为参数传递给casper.evaluate():
var keyWords = casper.evaluate(function (json) {
return json;
}, json);
完成此任务的完整程序如下所示:
var casper = require('casper').create();
casper.start('https://example.com/');
casper.then(function () {
var json = require('../keywords.json');
var keyWords = this.evaluate(function (json) {
return json;
}, json);
this.echo(JSON.stringify(keyWords));
});
casper.run();